2017-10-24 5 views
0

나는 Jackson CSV lib를 사용하여 CSV 파일을 읽습니다.Jackson csv mapper로 tsv 파일을 읽으려면 어떻게해야합니까?

CsvMapper mapper = new CsvMapper(); 
mapper.enable(CsvParser.Feature.WRAP_AS_ARRAY); 
ObjectReader reader = mapper.readerFor(String[].class); 
MappingIterator<String[]> values = reader.readValues("/path/to/file") 

이 CSV 파일에 대해 잘 작동 :

우리는 스트리밍 예 from the documentation있어. 그러나 필자는 TSV 파일을 읽으려면 필드 구분 기호로 쉼표 대신 탭을 사용하도록 구성하는 방법을 알 수 없습니다. 우리가 열 구분자 relates to the CsvSchema class에 대해 찾을 수있는 유일한 구성이지만 스키마가 없기 때문에 파일에 몇 개의 열이 있는지 알지 못합니다.

답변

1

사용이 :

CsvSchema schema = mapper.schemaFor(String[].class).withColumnSeparator('\t'); 
ObjectReader reader = mapper.readerFor(String[].class).with(schema); 
+0

이 작동하지 않습니다. 코드에서 CsvSchema 객체를 반환하지만 파일을 읽으려면 매퍼를 사용해야하며이 코드 행 뒤에는 매퍼가 여전히 쉼표를 찾도록 구성되어 있습니다. – mdarwin

+0

'CsvSchema'를 사용할 수 있도록 업데이트 된 코드 –

+0

감사합니다. – mdarwin