2014-01-23 2 views
-1

내가 자바를 사용하여 작성하는 CSV의 parts.Its 쉽게 쓰고의 일부 때구문 분석 CSV 파일은 구분 기호 데이터

String s = null 
while((s= bufferedReadr.readLine() !=null){ 
    String parts[] = s.split(','); 
    //process parts 
} 

The problem is data is in format 
"a", "b","c","d","e","f". 

But some of the data is 
"a" ,",b" ,"c",",a","e","f" . 

편집

것은 내가 CSV 한 라인을 얻을 수있다 내가 변경할 수없는 다른 코드에서 입력.

그래서 각 줄은 CSV 형식입니다. 그리고 저는 그것을 분할하고 싶습니다. 전체 파일을 구문 분석하고 파일 핸들을 요청할 때 csvlibs를 사용할 수 없습니다.

일부 문제는 문제의 원인이되는 데이터 부분과 함께 나타납니다.

어떻게 해결할 수 있습니까? 내가 사용할 수있는 열려있는 src 라이브러리는 무엇입니까?

+4

'opencsv', 슈퍼 CSV : 이 생성자

public CSVReader(Reader reader, char separator, char quotechar)
그리고 리더에 대해 readAll(), readNext(), .... 같은 방법과 CSVReadr 클래스가, 여러 가지 옵션이 있습니다. 당신의 Google은 다운 되었습니까? –

답변

2

직접 데이터를 분할하지 마십시오. 이 작업을 잘 수행 할 수있는 라이브러리 중 하나를 사용하십시오. 예를 들어 opencsv을 살펴보십시오.

+0

: 내 latets에 대한 의견을 – user93796

+0

@ user93796으로 편집 할 수 있습니까? API를 확인하십시오. 스트림 또는 리더를 전달할 수 있어야합니다. 당신은 항상'StringReader'를 사용하여 문자열을 감쌀 수 있고 한 줄로 CSV 파서를 사용할 수 있습니다. 그러나 열심히 일하기를 원한다면 자신을 긍정적이고/진보적 인 룩어 헤드'(?! X)'로 플레이 할 수 있지만 복잡해 보입니다. 나는 개인적으로 그런 정규식을 쓰는 방법을 모른다. 또는 문자를 반복하고'substring()'을 호출하여 문자열을 분리 할 수 ​​있습니다. 이것은 효과가있다. – AlexR

+0

마지막으로 CSVReader를 사용했습니다. – user93796

1

다른 의견에 따르면 OpenCSV를 사용하십시오. .., InputStreamReader, StringReader