web-dev-qa-db-fra.com

Comment convertir les résultats du flux en chaîne

Je veux convertir la sortie du résultat du flux en chaîne car je veux l'utiliser dans Junit, je pense que je dois utiliser l'écrivain de chaîne, mais je ne sais pas exactement comment l'utiliser.

StreamResult result = new StreamResult(new File("C:\\file.xml"));
transformer.transform(source, result);

Merci Fedor

20
user1578363

Jetez un œil et apprenez à utiliser les javadocs de la classe StreamResult ( http://Java.Sun.com/javase/6/docs/api/ ). L'un des constructeurs de StreamResult prend un objet Writer comme paramètre. Vous verrez que l'une des sous-classes de Writer est StringWriter. Ainsi, pour obtenir une chaîne à partir de ce qui est écrit dans le StreamResult, vous pouvez construire un StringWriter, le placer dans le StreamResult, transformer () la source en StreamResult et obtenir la chaîne du StringWriter.

//create a StringWriter for the output
StringWriter outWriter = new StringWriter();
StreamResult result = new StreamResult( outWriter );
...
transformer.transform( source, result );  
StringBuffer sb = outWriter.getBuffer(); 
String finalstring = sb.toString();
32
Timo Hahn
StringWriter writer = new StringWriter();
transformer.transform(source, new StreamResult(writer));
String output = writer.toString();
31
nosid

Vous pouvez utiliser un StringWriter de cette manière:

StringWriter sw = (StringWriter) result.getWriter(); 
StringBuffer sb = sw.getBuffer(); 
String finalstring = sb.toString();
3
aleroot