如何将编写器转换为字符串
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
几乎与 相同,但使用 代替 。StringWriter
StringBuilder
StringBuffer
示例用法:
Writer writer = new StringBuilderWriter();
String data = writer.toString();
注意 — Log4j 有自己的 StringBuilderWriter 实现,几乎与 commons-io 版本相同。