2017-07-24 21 views
1

我想將我的csv文件上載到數據庫。由於CSV中的換行符,我得到arrayIndexOutOfBounds異常。新行中有一些單元格擅長。我通過刪除Excel中的換行符來嘗試所有方法,用代碼中的空格替換\ n。我正在使用Putty編寫和運行程序。當我上傳膩子上的csv文件時,即使使用公式刪除換行符,這些行也會出現換行符(它現在在Excel中正確顯示,但在膩子中顯示爲中斷)。ArrayIndexOutOfBounds由於CSV中的換行符而異常

這是一塊我正在閱讀的代碼csv:

  try (BufferedReader br = new BufferedReader(new FileReader(csvFile))) 
      { 
        int count=0; 
        int lastPersonId; 
        int listId=0; 
        int lineNo=0; 
         while ((line = br.readLine()) != null) 
         { 
          line = line.replace("\n", "").replace("\r", "").trim(); 

          if (count==0) 
          { 
            count++; 
            continue; 
          } 
          String[] data = line.split(splitBy,-1); 

          prep = DatabaseConfig.dbConnection.prepareStatement(query,Statement.RETURN_GENERATED_KEYS); 
          prep.setString(1,data[1]); 
          prep.setString(2,data[2]); 
          prep.setString(3,data[3]); 

我該如何解決這個問題?

在此先感謝:)

+1

當你使用'readLine',你打破了每一個換行符,通過建設...你有嘗試過使用兼容的CSV解析器嗎? – assylias

+0

是excel還是csv?你必須做出決定,因爲如果你想從excel中讀取與從csv文件 – XtremeBaumer

+0

@assylias完全不同的文件,我首次使用csv,所以沒有關於CSV解析器的想法。你能建議我有什麼好的網站,以便我可以瞭解它嗎? – SSK

回答

0

CSV格式提供某種形式的轉義。如果單元格值包含換行符,則用"包裝。所以你應該處理這個。

我建議你使用一些CSV解析庫。

0

此問題已解決。在Excel工作表中刪除換行符時,我以錯誤的方式執行。 我現在正在做的事情=

1)在谷歌電子表格,按Ctrl + F,然後更多選項(三個點)=去查找和替換

2)輸入\ n在查找框中,選擇「使用正則表達式搜索「複選框並點擊全部替換

3)它將取代不必要的換行符。 此Excel中的CSV文件適用於我。

非常感謝大家的寶貴意見。我現在將工作在CSVparsers,OpenCSV等 謝謝:)

相關問題