如何将流结果转换为字符串

我想将流结果输出转换为字符串,因为我想在Junit中使用它我认为我需要使用字符串编写器,但我不确定如何使用它。

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

谢谢Fedor

查看并学习使用StreamResult类的javadoc( http://java.sun.com/javase/6/docs/api/ )。 StreamResult的构造函数之一将Writer对象作为参数。 您将看到Writer的一个子类是StringWriter。 因此,要从写入StreamResult的内容中获取字符串,您可以构造StringWriter,将其放入StreamResult,将Source()转换为StreamResult并从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(); 
 StringWriter writer = new StringWriter(); transformer.transform(source, new StreamResult(writer)); String output = writer.toString(); 

您可以这样使用StringWriter :

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