Java:StringBuilder append 換行問題

來源:互聯網
上載者:User

標籤:情況   builder   turn   rop   平台   end   sep   順序   linux   

    在進行IO操作時,有如下幾行代碼:

while ((line = bufferedReader.readLine())!=null){
if (line.length() != 0){
stringBuilder.append(line+"\r\n");
}
}

此處的分行符號"\r\n"失效,將其替換為"\n"也不行,最後替換成JDK內建的跨平台的行分隔字元,程式改寫如下:
stringBuilder.append(line+System.getProperty(line.separator));

問題解決。
另外補充一下,"\r\n"中,\r是斷行符號(return?),回到行首,\n是換行(next?),將游標移動到下一行的同個橫座標的位置。
印象中鍵盤上enter就叫斷行符號,可以換行,Java的程式語言中卻不是這樣。
在linux中\n包含斷行符號,windows中則不,缺少控制符或者順序不對都將失效,當然失效的原因也不止這兩個。
同時也存在行分隔字元失效的情況,這時可以替換回那兩種分行符號試試。原因可能是代碼所在項目部署的伺服器和使用者使用的系統存在差異,
比如說項目常常部署在linux上,而大多數使用者都是用的windows。"System.getProperty(line.separator)"作為跨平台分隔字元,
自動取得的是linux下的分行符號\n,在windows下就會失效。這時需要將跨平台分隔字元改為\r\n,也就是說,要和使用者使用的系統一致。





Java:StringBuilder append 換行問題

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.