“\ n”分隔符问题

时间:2011-04-13 12:40:41

标签: java delimiter

我有一个stringbuilder对象,一行数据被添加到。

在添加每一行之后,我在末尾添加一个“\ n”来表示一个新行。

这个完成后的stringbuilder对象被写入一个平面文件。

当我在记事本中打开平面文件时,我会在每一行后得到一个小矩形,并且列格式被破坏。

当我在wordpad中打开平面文件时,会考虑新行并且列格式是完美的。

我已经尝试过所有我知道在写入之前删除新行条目的方法,但这会在写入平面文件时删除格式。我需要新行来格式化列。

如何使用新行输出文件但不使用\ n?

5 个答案:

答案 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这样的东西。