如何将Writer转换为String

Pan*_*ian 23 java string io android

 Writer writer = new Writer();
 String data = writer.toString();/* the value is not casting and displaying null...*/
Run Code Online (Sandbox Code Playgroud)

有没有其他方法将编写器转换为字符串?

Grz*_*Żur 46

如果我想用它制作一个String,我会使用一个专门的编写器.

Writer writer = new StringWriter();
String data = writer.toString(); // now it works fine
Run Code Online (Sandbox Code Playgroud)


Ale*_*rov 7

几个答案建议使用StringWriter. 重要的是要意识到在内部StringWriter使用StringBuffer,这意味着它是线程安全的并且具有显着的同步开销

  • 如果您需要作家的线程安全,那么StringWriter就是要走的路。

  • 如果您不需要线程安全Writer(即编写器仅用作单个方法中的局部变量)并且您关心性能 -考虑使用StringBuilderWriter来自commons-io 库

StringBuilderWriter与 几乎相同StringWriter,但使用StringBuilder代替StringBuffer

示例用法:

Writer writer = new StringBuilderWriter();
String data = writer.toString();
Run Code Online (Sandbox Code Playgroud)

注意——Log4j 有自己的 StringBuilderWriter 实现,它几乎与 commons-io 版本相同。


Com*_*are 5

如果您想要一个Writer生成 a 的实现String请使用 aStringWriter