我有一个stringbuilder对象,一行数据被添加到。
在添加每一行之后,我在末尾添加一个“\ n”来表示一个新行。
这个完成后的stringbuilder对象被写入一个平面文件。
当我在记事本中打开平面文件时,我会在每一行后得到一个小矩形,并且列格式被破坏。
当我在wordpad中打开平面文件时,会考虑新行并且列格式是完美的。
我已经尝试过所有我知道在写入之前删除新行条目的方法,但这会在写入平面文件时删除格式。我需要新行来格式化列。
如何使用新行输出文件但不使用\ n?
答案 0 :(得分:11)
Windows终止一行的方法是使用“\ r \ n”,而不只是“\ n”。
您可以使用line.separator
系统属性找到“当前操作系统的行分隔符”:
String lineSeparator = System.getProperty("line.separator");
...
StringBuilder builder = new StringBuilder();
...
builder.append(lineSeparator);
...
答案 1 :(得分:2)
您可以从系统属性
获取运行Java程序的系统的值public static String newline = System.getProperty("line.separator");
答案 2 :(得分:1)
您应该添加System.getProperty("line.separator")
而不是\n
。自“nodepad”以来,对于MS Windows,它是\r\n
。
答案 3 :(得分:0)
在Windows中,您应该使用\ n \ r \ n。在* NIX(Linux / UNIX / Mac)中,你应该使用\ n
答案 4 :(得分:0)
如果您使用的是Windows,则应编写\r\n
以使其在记事本中正确加载。 \n
终结符是Unix文件的结尾,而Notepad不会正确解析它。写字板将为您转换它们。
另外我建议不要使用记事本,并期待像Vim这样的东西。