我想将我的文件保存为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?
答案 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"
系统属性..