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

2022-09-01 19:46:23

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

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

谢谢费多尔


答案 1

看看并学习如何使用 StreamResult 类的 javadocs (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();

答案 2
StringWriter writer = new StringWriter();
transformer.transform(source, new StreamResult(writer));
String output = writer.toString();