看板 java 關於我們 聯絡資訊
網路上最常找到的java用來讀CSV的方式 應該就是用BufferedReader的readLine()來做逐行讀取了 不過今天碰到一個狀況 在csv檔的其中一個欄位有包含了換行符號 所以當readLine()讀到該行時 換行符號其後的內容就被當成下一行 而導致多出一行被截斷之不完整的資料 想請問不知碰到這種情形時 有甚麼好的解決方式? 或者說不要用BufferedReader而用別的方式來讀檔? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 223.140.27.187 ※ 文章網址: https://www.ptt.cc/bbs/java/M.1494412445.A.A1A.html
ssccg: https://tools.ietf.org/html/rfc4180 05/10 18:42
ssccg: 有換行的話,欄位必須包在""裡面,你可以加上規則檢查如果 05/10 18:44
ssccg: 有開始的"但還沒遇到結束的"之前就換行時換行符號也是資料 05/10 18:44
ssccg: 總之你要保證你的parser符合規格,不管用啥API實作 05/10 18:45
ssccg: 或是如果你是特規的(像是假設每行欄數固定,最後一欄不會包 05/10 18:47
ssccg: 含換行)那就照你的規則處理 05/10 18:48
pttworld: BufferedReader有read 05/10 19:04
Chikei: 數escape character,數量不對就多讀一行... 05/11 01:24