2016-07-27 2 views
4

솔루션이 필요합니다. 문제는 CSV 파일에 제품 값이 큰 따옴표로 묶여 있으므로 내 코드가 전체 제품 값을 읽을 수 없으므로 "말린 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

당신이 당신의 POJO에 값을 설정할 때이 CSV 파일 또는 CSVParser..It의 앞으로 일어날에 문제가되지 않습니다 .. 여기에 작업 코드

이 가
FileInputStream fis = new FileInputStream("path.csv"); 
CSVParser csvp = new CSVParser(fis); 
String[][] values = csvp.getAllValues();  
System.out.println(values[1][2]); 
이 다운 된 투표 이유
관련 문제