自訂 MyBufferedReader 封裝 FileReader,逐字元讀取並組裝行字串,遇 \n 返回,忽略 \r。
不能隨意刪除。 Windows 風格換行為 \r\n,若刪除 \r 判斷,\r 會被追加進 StringBuilder,導致行尾殘留 \r;若刪除 \n 判斷,則無法正確切分行。雖然某些場景下輸出看似正常(如控制台忽略 \r),但資料層面已損壞,後續解析會出錯。
sb.length()!=0 不能改為 sb.toString()!=0?sb.toString() 回傳字串,不能與整數 0 比較(編譯錯誤)。即使改為 !sb.toString().isEmpty(),也會因特殊字元(如空白、控制字元)導致誤判。length() 直接檢查字元數量最可靠。
BufferedReader 內建 readLine(),已處理跨平台換行。\r、\n、\r\n 三種情況。