【问题标题】:How to convert stream results to string如何将流结果转换为字符串
【发布时间】:2012-10-24 10:27:39
【问题描述】:

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

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

谢谢 费多尔

【问题讨论】:

    标签: java dom filestream


    【解决方案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();
    

    【讨论】:

    • 你好 Timo,谢谢,但我应该把转换器放在哪里 StreamResult result = new StreamResult(new File("C:\\file.xml"));
    • 好吧,您可以使用 StreamResult result = new StreamResult(new File("C:\\file.xml")); 将结果放入文件中。或者您使用 StreamResult result = new StreamResult(outWriter); 将其放入 StringWriter如果你想在字符串中使用文件,为什么要使用它?
    • “来源”代表什么?
    • 我猜source 是正在转换的 XML。
    【解决方案2】:
    StringWriter writer = new StringWriter();
    transformer.transform(source, new StreamResult(writer));
    String output = writer.toString();
    

    【讨论】:

      【解决方案3】:

      您可以通过这种方式使用StringWriter

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

      【讨论】:

      • 这是我要找的那个
      • 使用缓冲区和不使用缓冲区有什么区别,就像在@nosid 回答中一样?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-06
      • 1970-01-01
      • 2013-06-29
      • 1970-01-01
      相关资源
      最近更新 更多