如何将编写器转换为字符串
 Writer writer = new Writer();
 String data = writer.toString();/* the value is not casting and displaying null...*/
有没有其他方法可以将编写器转换为字符串?
 Writer writer = new Writer();
 String data = writer.toString();/* the value is not casting and displaying null...*/
有没有其他方法可以将编写器转换为字符串?
如果我想用它来制作一个字符串,我会使用专门的作家。
Writer writer = new StringWriter();
String data = writer.toString(); // now it works fine
有几个答案建议使用 .重要的是要意识到StringWriter在内部使用StringBuffer,这意味着它是线程安全的,并且具有显着的同步开销。StringWriter
如果您需要编写器的线程安全,那么这就是要走的路。StringWriter
如果你不需要线程安全(即编写器只在单个方法中用作局部变量),并且你关心性能 ,请考虑使用 commons-io 库中的 StringBuilderWriter。Writer
StringBuilderWriter几乎与 相同,但使用 代替 。StringWriterStringBuilderStringBuffer
示例用法:
Writer writer = new StringBuilderWriter();
String data = writer.toString();
注意 — Log4j 有自己的 StringBuilderWriter 实现,几乎与 commons-io 版本相同。