我需要将字符串写入ByteArrayOutputStream
,但我需要用破坏来编写字符串。我试着这样做:
out.write("123".getBytes());
out.write("\n456".getBytes());
但'\ n'不起作用。请告诉我,我该如何解决?或者建议我替换OutputStream来存储字符串(这个操作系统必须允许使用断行)而不需要创建文件。谢谢。
答案 0 :(得分:7)
ByteArrayOutputStream stream = ...;
PrintStream printer = new PrintStream(stream, true); // auto-flush
printer.println("123"); // writes newline
printer.print("hello"); // no new line
printer.print(" world");
printer.println();
请注意,这将生成特定于平台的字节。换行符可以是\n
,\r\n
或\r
。
使用的实际字符序列在system property line.separator
中指定。
答案 1 :(得分:3)
只需使用BufferedWriter
它就可以为您管理换行符(bwinstance.newLine()
)。无论您在哪个操作系统上运行。
答案 2 :(得分:3)
如果您正在寻找系统无关的换行符分隔符,我建议您使用:
System.getProperty("line.separator");
我不是每次都调用getProperty()
,而是将这个值存储在一个正确可访问的变量中。
如果您在编写字符串之前构造字符串,这也是理想的方法,因为这样您就不必单独编写每一行。