Einlesen einer XML-Datei mit FileInputStream (für Java)?
hier ist der deal.
Für mein Projekt habe ich zum serialisieren und Deserialisieren ein zufälliger Baum mit Java und XStream. Mein Lehrer gemacht, der Baum/RandomTree algorithmen, so dass ich keine sorgen zu machen. Was ich nicht weiß, wie zu tun, ist dies: ich bin mit FileInputStream zum Lesen/schreiben der xml-Datei, die ich serialisiert und deserialisiert, aber wenn ich Deserialisieren, ich weiß nicht, die Methode verwendet, um die Datei Lesen. Nachdem ich die Datei Lesen, ich sollte in der Lage sein, es zu konvertieren von XML-und dann drucken Sie es aus, wie ein string. Hier ist, was ich habe, so weit. (Ich importierte alles richtig, wollte nur nicht, fügen Sie es auf meine code-segment).
FileInputStream fin;
try
{
//Open an input stream
fin = new FileInputStream ("/Users/Pat/programs/randomtree.xml");
//I don't know what to put below this, to read FileInpuStream object fin
String dexml = (String)xstream.fromXML(fin);
System.out.println(dexml);
//Close our input stream
fin.close();
System.out.println(dexml);
//Close our input stream
fin.close();
}
//Catches any error conditions
catch (IOException e)
{
System.err.println ("Unable to read from file");
System.exit(-1);
}
Edit: Hey Jungs, danke für die Hilfe, habe ich es herausgefunden; ich glaube nicht, dass ich haben, um es zu drucken als string, ich brauchte nur zu machen, ein benchmarking-Rahmen zu der Zeit und so, aber nochmal danke!
InformationsquelleAutor ParseTheData | 2008-12-12
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den
xstream.fromXML()
Methode wird die Lesung aus dem input-stream für Sie. Ich denke, das problem ist, dass Sie Gießen Sie den Rückgabewert vonxstream.fromXML(fin)
in einen String, wenn es umgewandelt werden soll, um die Art von Objekt, das Sie ursprünglich serialisiert (RandomTree
nehme ich an). So würde der code wie folgt Aussehen:EDIT: nach Klärung in den Kommentaren, der Autor hat das Ziel, Lesen Sie zuerst in einen String, so dass der XML-Inhalt gedruckt werden können, bevor der Deserialisierung. Mit diesem Ziel im Verstand, empfehle ich einen Blick auf die IOUtils Bibliothek erwähnt, in dieser thread
InformationsquelleAutor Marc Novakowski
Aus, was ich verstehe, aus http://x-stream.github.io/tutorial.html (habe ich noch nie gearbeitet mit XStream vor), müssen Sie definieren Ihre Typen ersten. Casting-String ist definitiv falsch, möchten Sie wahrscheinlich eine angepasste Art (je nach dem, was in Ihrem zufälligen XML), dann müssen Sie die Zuordnung der XML-tags an Ihre Mitglieder:
z.B.
Bedeutung, dass es Karten der "person" - tag in Ihrer XML an deine Person-Klasse.
Zu derserialize, die Sie tun können:
Auch, schließen Sie Ihren stream zweimal, und Sie wahrscheinlich wollen, es zu tun in einem finally-block 🙂
edit: gelesen Sie Ihren Kommentar oben...
Ihre Aufgabe beinhaltet zwei Schritte:
Um serialisiert Objekt, müssen Sie deserialisiert werden es erst durch Ihre Eingabe-Datei.
Ausgabe Ihres Objekts als String, einfach
InformationsquelleAutor Cambium