java寫檔案時的換行符

2021-09-01 10:03:30 字數 555 閱讀 4873

linux和unix系統的換行是"\n",而windows的換行並不是直接的"\n",是"\r\n"。所以out.write("\n")只能得到乙個黑框,因為windos不認為這是個「換行」。 直接從記事本輸入的話,windows自動輸入了"\r\n",所以從從文字檔案中讀出來的也是"\r\n",可以正常顯示。

那麼這是為什麼呢?稍微學過正規表示式的朋友都知道:\r是回車符,而\n是換行符。windows預設\n在文件中顯示的是乙個空格或者小黑框。所以,要先回車,再換行。

解決方案:

1.由於unix和windows系統引數的差別,故不使用硬編碼進行換行,通過使用system.getproperty("line.separator");獲取換行符 

2.通過使用out.newline();實現 

擴充套件:作業系統常用引數的差別,如: 

line.separator(windows:"\r\n";unix:"\n"); 

file.separator(windows:"\";unix:"/"); 

path.separator(windows:";";unix:":"); 

檔案換行符

檔案換行符 dos和windows採用回車 換行 cr lf 而unix linux採用換行符lf,蘋果機 mac os系統 則採用回車符cr.cr用符號 r 表示,十進位制ascii 是13,十六進製制 為0x0d lf使用 n 符號表示,ascii 是10,十六制為0x0a.所以windows平...

Java吸收換行符

今天做題遇到的 由於讀入的字串可能包含空格,所以採用nextline。int n sc.nextint for int i 0 i上面的 只會輸出n 1個字串,最後乙個沒有輸出,原因nextint 方法會讀取下乙個int型標誌的token,但是焦點不會移動到下一行,仍然處在這一行上。當使用nextl...

Linux換行符和Windows換行符的區別與轉換

windows為乙個回車 r cr或 m 和乙個換行 n nl或lf 括號內是其它顯示方法 linux為乙個換行 n mac為乙個回車 r 檢視檔案是否含有windows換行符 windows notepad 檢視 顯示所有符號 linux file test.txt test.txt ascii ...