2016-07-27 82 views
4

我需要一个解决方案..问题是在csv文件产品价值用双引号saperated所以我的代码无法读取完整的产品价值其唯一的阅读“马林 - 12”,但完整的产品名字是“Marlin - 12”“ - 自定义”。使用读取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 

代码IM是

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

当您将值设置为你的POJO这不是CSV文件或CSVParser..It happend问题.. 这里的工作代码

FileInputStream fis = new FileInputStream("path.csv"); 
CSVParser csvp = new CSVParser(fis); 
String[][] values = csvp.getAllValues();  
System.out.println(values[1][2]);