2011-05-15 4 views
12
내가 CSV 파일을 읽고있다

에서 백 슬래시를 무시하다 큰 따옴표로 묶어야 일부 값으로 구분 탭을 선택합니다. '\'문자가있는 열의 값을 읽을 때이 문제가 발생합니다.이 값은 값에서 제거됩니다. 원본 파일 주소, 예를 들어 opencsv 내가 CSV CSV 파일의 첫 번째 줄을 무시하고</p> <p>opencsv 사용하여 필드 값

reader = new CSVReader(new FileReader(exchFileObj),'\t','"',1); 

= 12 \ 91buenosaires

어드레스된다 = 1291buenosiares csvreader 생성하는 문자열 배열

. '\'문자를 읽을 수 있도록 수정하려면 어떻게해야합니까?

+0

아무것도 생략하지 않도록 0으로 라인을 설정할 수 있습니다 \\ \\'를 파일에 넣으십시오. 할 수 없다면 open csv에서 다른 이스케이프 문자를 설정할 수 있습니까? – rsp

답변

3

CSVReader에는 constructor이 있으며이를 통해 이스케이프 문자를 사용하도록 설정할 수 있습니다. 이것을 사용하고 사용하지 않는 이스케이프 문자를 입력하면 백 슬래시 문자가 입력됩니다.

20

나는 동일한 문제가있어서 내 CSV 파일에 나타나지 않을 것이라고 확신 할 수있는 다른 문자를 찾을 수 없습니다. 그러나 sourceforge에 대한 글에 따르면 '\ 0'을 사용하여 명시 적 생성자를 사용하여 이스케이프 문자를 원하지 않는다는 것을 나타낼 수 있습니다.

CSVParser parser = new CSVParser(CSVParser.DEFAULT_SEPARATOR, CSVParser.DEFAULT_QUOTE_CHARACTER, '\0', CSVParser.DEFAULT_STRICT_QUOTES); 

http://sourceforge.net/tracker/?func=detail&aid=2983890&group_id=148905&atid=773542

나는 피상적 테스트의 비트를했고,이 확실히 적어도 백 슬래시에서 잘 작동을 통해 할 것으로 보인다.

0

Hui Wang 응답 외에도 CSVReader의 생성자에서이 생성 된 CSVParser를 사용해야합니다. 유일하게 사용할 수 생성자는 다음과 같습니다

public CSVReader(Reader reader, int line, CSVParser csvParser) 

당신은 opencsv이 (가)`\\는`이스케이프 문자로, 당신은`입력해야 할 수도 있습니다 사용하는 경우가

관련 문제