2011-11-30 39 views
0

我有一種方法,使用DataOutputStream.writeBytes(String)方法將字符串寫入文本文件。如果我寫一個帶有換行符的字符串,例如"I need \n help!",則新行不會顯示在記事本或其他基本文本編輯器中。但是,它確實出現在寫字板,MS Word等。爲什麼這個,我可以修復它?用Java編寫文本文件

+2

有關的排序,嘗試更好的編輯器,如Notepad ++,http://notepad-plus-plus.org/。我經常使用對行結束符(\ n與\ r與\ r \ n)非常敏感的文件格式(ER7/HL7)和非打印ASCII字符集,該編輯器能夠顯示這些文件以查看真正的內容那裏。它是免費的,試試看看它是否對你有幫助! – Freiheit

回答

2

通常使用真正的文本編輯器,其中記事本不是。

如果您不打算使用理解不同風味的文本編輯器,或者通過爲您進行轉換的某些內容過濾文件,則需要編寫系統特定的換行符。

System.getProperty("line.separator"); 

這會給你一個操作系統特定的行分隔符。它比你想象的要少。

System.out.printf("%n"); 

這也是一樣的(並且在String.format中也有提供);也比你想象的要少。這更多的是編輯器,因爲任何文件都可以存在於任何系統上,可以用任何編輯器編輯。

1

您應該使用System.getProperty("line.separator");而不是直接使用\ n。

+0

您也可以使用\ r \ n代替。它涵蓋了所有的基地,並沒有搞砸任何東西。每千行節省幾毫秒,所以沒有太大的差別。 – Jon