首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Java 自製緩衝讀取行:換行符處理與末行返回邏輯詳解

     編輯:程式設計綜合問答

代碼核心邏輯

自訂 MyBufferedReader 封裝 FileReader,逐字元讀取並組裝行字串,遇 \n 返回,忽略 \r。

第 15、17 行 (\r/\n 處理) 能否刪除?

不能隨意刪除。 Windows 風格換行為 \r\n,若刪除 \r 判斷,\r 會被追加進 StringBuilder,導致行尾殘留 \r;若刪除 \n 判斷,則無法正確切分行。雖然某些場景下輸出看似正常(如控制台忽略 \r),但資料層面已損壞,後續解析會出錯。

第 22 行 sb.length()!=0 不能改為 sb.toString()!=0?

sb.toString() 回傳字串,不能與整數 0 比較(編譯錯誤)。即使改為 !sb.toString().isEmpty(),也會因特殊字元(如空白、控制字元)導致誤判。length() 直接檢查字元數量最可靠。

改進建議

  • 使用 BufferedReader 內建 readLine(),已處理跨平台換行。
  • 若教學需自製,參考 JDK 源碼處理 \r、\n、\r\n 三種情況。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved