La lecture d'un Fichier XML à l'aide FileInputStream (pour Java)?
voici l'affaire.
Pour mon projet, j'ai pour sérialiser et désérialiser un arbre aléatoire à l'aide de Java et XStream. Mon professeur avait l'Arbre/RandomTree algorithmes, donc je n'ai pas à vous soucier de cela. Ce que je ne sais pas comment faire c'est ceci: je suis en utilisant FileInputStream pour lire/écrire le fichier xml que je sérialisé et désérialisé, mais quand je désérialiser, je ne connais pas la méthode utilisée pour lire le fichier. Après j'ai lu le fichier je devrais être capable de le convertir en XML, puis de l'imprimer comme une chaîne de caractères. Voici ce que j'ai jusqu'à présent. (J'ai importé le tout correctement, juste de ne pas l'ajouter à ma segment de code).
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: Hé les gars, merci pour l'aide, j'ai tout compris; je ne pense pas que j'ai l'impression comme une chaîne de caractères, j'ai juste besoin de faire une analyse comparative de cadre de temps, mais merci encore!
OriginalL'auteur ParseTheData | 2008-12-12
Vous devez vous connecter pour publier un commentaire.
La
xstream.fromXML()
méthode de faire la lecture à partir du flux d'entrée pour vous. Je pense que le problème, c'est que vous êtes un moulage de la valeur de retour dexstream.fromXML(fin)
dans une Chaîne quand il doit être converti dans le type d'objet que vous avez à l'origine sérialisé (RandomTree
je suppose). Ainsi, le code ressemblera à ceci:EDIT: après des précisions dans les commentaires, l'auteur du but est d'abord de lire dans une Chaîne de sorte que le contenu XML peut être imprimée à l'avant de la désérialisation. Avec cet objectif à l'esprit, je vous recommande de prendre un coup d'oeil à la IOUtils bibliothèque mentionné dans ce fil
OriginalL'auteur Marc Novakowski
De ce que je comprends de http://x-stream.github.io/tutorial.html (je n'ai jamais travaillé avec XStream avant), vous devez définir vos types en premier. La conversion en Chaîne de caractères est absolument faux, vous voulez probablement un type personnalisé (en fonction de ce qui est à l'intérieur de votre aléatoires XML), vous devez mapper les balises XML à vos membres:
par exemple
ce qui signifie qu'il des cartes de la "personne" de la balise à l'intérieur de votre XML à votre Personne de la classe.
À derserialize, vous pouvez le faire:
Aussi, vous êtes à la fermeture de votre volet deux fois, et vous voulez probablement faire dans un bloc finally 🙂
edit: après Avoir lu votre commentaire ci-dessus...
Votre tâche comporte deux étapes:
Afin de sérialiser un objet, vous devez le désérialiser d'abord à partir de votre fichier d'entrée.
À la sortie de votre Objet en tant que Chaîne de caractères, il suffit de faire
OriginalL'auteur Cambium