Writer writer = new Writer();
String data = writer.toString();/* the value is not casting and displaying null...*/
还有其他方法可以将编写器转换为字符串吗?
答案 0 :(得分:45)
如果我想用它制作一个String,我会使用专门的编写器。
Writer writer = new StringWriter();
String data = writer.toString(); // now it works fine
答案 1 :(得分:1)
如果您希望Writer
实施产生String
,use a StringWriter
。
答案 2 :(得分:1)
有几个答案建议使用StringWriter
。
重要的是要意识到 StringWriter
在内部使用StringBuffer
,这意味着它是线程安全的,并且具有很大的同步开销。
如果编写者需要线程安全,那么StringWriter
是可行的方法。
如果您不需要线程安全的Writer
(即在单个方法中仅将writer用作局部变量)并且您在意性能,请考虑使用{{3 }} (来自StringBuilderWriter
)。
StringBuilderWriter
与StringWriter
几乎相同,但是使用StringBuilder
而不是StringBuffer
。
样品用量:
Writer writer = new StringBuilderWriter();
String data = writer.toString();
注意— commons-io library与commons-io版本几乎相同。