如何将文件中的换行符保存为LF(Unix约定)?

时间:2015-10-17 07:02:52

标签: java unix newline

我想将我的文件保存为UTF-8,但不能使用CRLF(Windows约定)进行换行,而是使用LF(Unix对流)。我该怎么做?

是否足够写" \ n"在这一行的最后,像这样:

String data = "";
data += "My text line 1\n";
data += "My text line 2\n";

我的文件已正确保存,以便每行都在其中,这很好。我怎么知道Windows或Linux惯例?

如果我的问题需要此信息,我将保存我的文件:

new BufferedWriter(new OutputStreamWriter(new FileOutputStream(filename), "UTF-8"));

但我怎么知道我的换行是保存为LF而不是CRLF?

2 个答案:

答案 0 :(得分:1)

是的,这有效。该文件将仅包含LF作为行分隔符。要验证,请使用您喜欢的十六进制编辑器打开文件。

答案 1 :(得分:-2)

Java将写出您指定的行结束字符。所以write("test\n")是Unix LF,write("test\r\n")是Windows CRLF。

但是有些功能会自动使用当前操作系统的行结尾。其中包括printf("test%n")以及println()BufferedWriter.newLine()。当前使用的默认行结尾可用于System.lineSeparator()"line.separator"系统属性..