2015-10-17 52 views
0

我想將我的文件保存爲UTF-8,但不能使用CRLF(Windows約定)完成換行符,而是使用LF(Unix convetion)。我該怎麼做?如何將文件中的換行符保存爲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

是的,這是有效的。該文件將只包含LF作爲行分隔符。要驗證,請用您最喜歡的十六進制編輯器打開文件。

-1

Java將寫入結尾字符的行。所以write("test\n")是Unix LF,write("test\r\n")是Windows CRLF。

但是有一些功能會自動使用當前操作系統的行結束符。這包括printf("test%n")以及println()BufferedWriter.newLine()。當前使用的默認行結尾可用System.lineSeparator()"line.separator"系統屬性。

+0

Windows CRLF是'\ r \ n'。你用過的'\ n \ r'不是任何人都知道的計算機系統中的行結束符。 – EJP

+0

@EJP當然,是的,修正了錯字。謝謝。 – eckes

相關問題