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