\r\n才可以 \n 是換行 \r是回車
windows中的換行符是\r\n,linux/unix下是\n。其中\r=0x0d代表回車,\n=0x0a代表換行。
早期的計算機輸出設備不是顯示器,而是電傳打字機,結構與普通的打字機差不多。有一個打印頭在紙上打字,同時有一個電動機控制紙張的進出。當打印頭到達行尾的時候,需要兩個動作才能夠到達下一行的行首:首先執行回車動作,將打印頭移動到本行的行首,然後進行換行動作,電動機將紙張向上移動一行,這樣打印頭就處於下一行的行首,可以繼續進行打印。回車和換行對應的控制字符分別是\r和\n,這就是windows中換行符為\r\n的由來。後來由於經常連續執行,所以在打印機中將這兩個控制字符簡化為一個控制字符,這就是linux/unix中的換行符\n的由來。
做一個日志文件的時候發現由printWriter寫出來的文件在windows上打開 是混亂的,因為在linux下執行printLn方法時 寫入的換行符是\n ,在windows沒法識別\r\n才能被認為是換行