java在不同系統中處理換行符

2021-06-29 03:29:18 字數 712 閱讀 5670

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

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

在文章分割中,除了可用bufferedreader的readline()方法讀取每行,還可以用換行符來分割。

在windows中要使用"\r\n"

string 

arr= 

filecontet

.splite("\r\n");

而在linux系統需用"\n"

string 

arr= 

filecontet

.splite("\n"); 

如果不清楚是哪個系統,可以使用下面的**:

string 

lineseparator

= system

.getproperty("line.separator", "\n"); 

string 

arr= 

filecontet

.splite(lineseparator );

不同系統下的換行符

那麼,到底為什麼會出現這個提示的呢?檔案格式區別 我們先看看這三個者有何區別。很久以前,人們用老式的電傳打字機作為輸入裝置,它使用 兩個字元來另起新行。乙個字元把滑動架移回首位 稱為回車,另乙個字元把紙上移一行 稱為換行,當計算機問世後,由於儲存器曾經非常昂貴。有些人就認定沒必要用兩個字元來表示行尾...

CR LF 不同系統下的換行符

在文字處理中,cr,lf,cr lf是不同作業系統上使用的換行符.dos和windows採用回車 換行cr lf表示下一行,而unix linux採用換行符lf表示下一行,蘋果機 mac os系統 則採用回車符cr表示下一行.cr用符號 r 表示,十進位制ascii 是13,十六進製制 為0x0d ...

不同系統中的換行符,回車符 r , n

r 是回車,前者使游標到行首 n 是換行,後者使游標下移一格 unix下一般只有乙個0x0a表示換行 n windows下一般都是0x0d和0x0a兩個字元 r n 蘋果機 mac os系統 則採用回車符cr表示下一行 r unix系統裡,每行結尾只有 換行 即 n windows系統裡面,每行結尾...