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

Java 如何将流结果转换为字符串,java,dom,filestream,Java,Dom,Filestream,我想将流结果输出转换为字符串,因为我想 要在Junit中使用它,我想我需要使用字符串编写器,但是 我不知道如何确切地使用它 StreamResult result = new StreamResult(new File("C:\\file.xml")); transformer.transform(source, result); 谢谢 软呢帽您可以通过以下方式使用软呢帽: StringWriter sw = (StringWriter) result.getWriter(); String

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

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

您可以通过以下方式使用软呢帽:

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

查看并学习使用StreamResult类()的javadocs。 StreamResult的一个构造函数将Writer对象作为参数。您将看到Writer的子类之一是StringWriter。因此,要从写入StreamResult的内容中获取字符串,您可以构造一个StringWriter,将其放入StreamResult,将()源转换为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();

你好,Timo,谢谢,但是我应该把转换器StreamResult=newstreamresult(新文件(“C:\\File.xml”))放在哪里;您可以使用StreamResult=newstreamresult(新文件(“C:\\file.xml”))将结果放入文件中;或者使用StreamResult=newstreamresult(outWriter)将其放入StringWriter;如果你想要一个字符串形式的文件,为什么要使用它呢?“source”代表什么?我猜
source
就是要转换的XML。这就是我一直在寻找的,使用缓冲区和不使用缓冲区有什么区别,比如@nosid answer?
//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();