2016-07-27 4 views
4

Мне нужно решение .. Проблема в значениях файла csv файла сглаживается с помощью двойных кавычек, поэтому мой код не может прочитать полное значение продукта, его единственное чтение «Marlin-12», но полный продукт имя «Марлин - 12» - «Пользовательский».не удалось прочитать 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 

код им с помощью для чтения файла CSV является

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]);