作者stw82 (Godhand)
看板java
標題[問題] 有關讀取CSV的問題
時間Wed May 10 18:34:02 2017
網路上最常找到的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: 有換行的話,欄位必須包在""裡面,你可以加上規則檢查如果 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