[問題] 有關讀取CSV的問題

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

Links booklink

Contact Us: admin [ a t ] ucptt.com