public class CSVParser extends Object implements Iterable<CSVRecord>
CSVFormat
.
Parsing of a csv-string having tabs as separators, '"' as an optional value encapsulator, and comments starting with '#':
CSVFormat format = new CSVFormat('\t', '"', '#'); Reader in = new StringReader("a\tb\nc\td"); List<CSVRecord> records = new CSVParser(in, format).getRecords();
Parsing of a csv-string in Excel CSV format, using a for-each loop:
Reader in = new StringReader("a;b\nc;d"); CSVParser parser = new CSVParser(in, CSVFormat.EXCEL); for (CSVRecord record : parser) { ... }
Internal parser state is completely covered by the format and the reader-state.
see package documentation for more details
Constructor and Description |
---|
CSVParser(Reader input)
CSV parser using the default
CSVFormat . |
CSVParser(Reader input,
CSVFormat format)
Customized CSV parser using the given
CSVFormat |
CSVParser(String input,
CSVFormat format)
Customized CSV parser using the given
CSVFormat |
Modifier and Type | Method and Description |
---|---|
Map<String,Integer> |
getHeaderMap()
Returns a copy of the header map that iterates in column order.
|
long |
getLineNumber()
Returns the current line number in the input stream.
|
long |
getRecordNumber()
Returns the current record number in the input stream.
|
List<CSVRecord> |
getRecords()
Parses the CSV input according to the given format and returns the content as an array of
CSVRecord
entries. |
Iterator<CSVRecord> |
iterator()
Returns an iterator on the records.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
forEach, spliterator
public CSVParser(Reader input) throws IOException
CSVFormat
.input
- a Reader containing "csv-formatted" inputIllegalArgumentException
- thrown if the parameters of the format are inconsistentIOException
public CSVParser(Reader input, CSVFormat format) throws IOException
CSVFormat
input
- a Reader containing "csv-formatted" inputformat
- the CSVFormat used for CSV parsingIllegalArgumentException
- thrown if the parameters of the format are inconsistentIOException
public CSVParser(String input, CSVFormat format) throws IOException
CSVFormat
input
- a String containing "csv-formatted" inputformat
- the CSVFormat used for CSV parsingIllegalArgumentException
- thrown if the parameters of the format are inconsistentIOException
public Map<String,Integer> getHeaderMap()
The map keys are column names. The map values are 0-based indices.
public long getLineNumber()
public long getRecordNumber()
public List<CSVRecord> getRecords() throws IOException
CSVRecord
entries.
The returned content starts at the current parse-position in the stream.CSVRecord
entries, may be emptyIOException
- on parse error or input read-failureThis software is published under the BSD license. Copyright © 2003-${build.year}, CRIXP AG, Switzerland, All rights reserved. Use is subject to license terms.