2016-07-27 14 views
4

解決策が必要です。問題はcsvファイルにあります。値は二重引用符で囲まれていますので、私のコードは完全な製品価値を読み取ることができません。 "Marlin - 12"名前は "Marlin - 12" " - Custom"です。 csvファイルを読み込むための使用二重引用符でcsvを読むことができません

PRODUCT_ID,CATEGORY,PRODUCT, MIN_STOCK_LEVEL 
23,   cat1, "Marlin - 12"" - Custom",2 
24,   cat1, "Marlin - 12"" – Custom1",3 
25,   cat2, "Marlin - 12"" – Custom2",3 
26,   cat3, "Marlin - 12"" – Custom3",2 
27,   cat4, "Marlin - 12"" - Custom",2 
28,   cat5, "Marlin - 12"" - Custom",2 

コードイムは

import com.Ostermiller.util.CSVParser 

... 

else if (fileName.contains(".csv")) { 
    FileInputStream fis = new FileInputStream(fileName); 
    CSVParser csvp = new CSVParser(fis); 
    String[][] values = csvp.getAllValues(); 
    tempClientProductCol = new ClientProductCol(); 
} 

答えて

2

CSV形式はRFC 4180で指定されたもののようですです。 Ostermiller siteによれば、Excelスタイルを使用する必要があります。そこにそれを使用する方法が文書化されています。あなたはExcelCSVParserを使用して終了します。それはそうと

+0

これがダウンした理由を知ってはいけないが投票しました私には:-) – spa

+0

私はこのパーサーを含む新しいライブラリを提案していると思っていましたが、javadocへのリンクを追加して(そしてdownvoteを削除できるように)追加しました。 ':)' –

+0

また、テストして素晴らしいので、私の回避策の回答を削除してください –

-1

これは、CSVファイルまたはCSVParser..Itでは問題ではありません、あなたのPOJOに値を設定したときに起こった。.. ワーキングコードここ

FileInputStream fis = new FileInputStream("path.csv"); 
CSVParser csvp = new CSVParser(fis); 
String[][] values = csvp.getAllValues();  
System.out.println(values[1][2]); 
関連する問題