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

看板java作者 (Godhand)時間8年前 (2017/05/10 10:34), 編輯推噓0(008)
留言8則, 3人參與, 最新討論串1/1
網路上最常找到的java用來讀CSV的方式 應該就是用BufferedReader的readLine()來做逐行讀取了 不過今天碰到一個狀況 在csv檔的其中一個欄位有包含了換行符號 所以當readLine()讀到該行時 換行符號其後的內容就被當成下一行 而導致多出一行被截斷之不完整的資料 想請問不知碰到這種情形時 有甚麼好的解決方式? 或者說不要用BufferedReader而用別的方式來讀檔? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 223.140.27.187 ※ 文章網址: https://www.ptt.cc/bbs/java/M.1494412445.A.A1A.html

05/10 18:42, , 1F

05/10 18:44, , 2F
有換行的話,欄位必須包在""裡面,你可以加上規則檢查如果
05/10 18:44, 2F

05/10 18:44, , 3F
有開始的"但還沒遇到結束的"之前就換行時換行符號也是資料
05/10 18:44, 3F

05/10 18:45, , 4F
總之你要保證你的parser符合規格,不管用啥API實作
05/10 18:45, 4F

05/10 18:47, , 5F
或是如果你是特規的(像是假設每行欄數固定,最後一欄不會包
05/10 18:47, 5F

05/10 18:48, , 6F
含換行)那就照你的規則處理
05/10 18:48, 6F

05/10 19:04, , 7F
BufferedReader有read
05/10 19:04, 7F

05/11 01:24, , 8F
數escape character,數量不對就多讀一行...
05/11 01:24, 8F
文章代碼(AID): #1P4koTeQ (java)
文章代碼(AID): #1P4koTeQ (java)