Basic Tutorial
This section covers the most basic usage of FastCSV. It provides examples for reading and writing CSV data. For more advanced features, see the dedicated Examples section.
CsvReader examples
Section titled “CsvReader examples”Iterative reading of some CSV data from a string
Section titled “Iterative reading of some CSV data from a string”CsvReader.builder().ofCsvRecord("foo1,bar1\nfoo2,bar2") .forEach(System.out::println);
Iterative reading of a CSV file
Section titled “Iterative reading of a CSV file”try (CsvReader<CsvRecord> csv = CsvReader.builder().ofCsvRecord(file)) { csv.forEach(System.out::println);}
Iterative reading of some CSV data with a header
Section titled “Iterative reading of some CSV data with a header”CsvReader.builder().ofNamedCsvRecord("header 1,header 2\nfield 1,field 2") .forEach(rec -> System.out.println(rec.getField("header 2")));
Iterative reading of some CSV data with a custom header
Section titled “Iterative reading of some CSV data with a custom header”NamedCsvRecordHandler callbackHandler = NamedCsvRecordHandler.builder() .header("header 1", "header 2") .build();
CsvReader.builder().build(callbackHandler, "field 1,field 2") .forEach(rec -> System.out.println(rec.getField("header 2")));
Custom settings
Section titled “Custom settings”CsvReader.builder() .fieldSeparator(';') .quoteCharacter('"') .commentStrategy(CommentStrategy.SKIP) .commentCharacter('#') .skipEmptyLines(true) .ignoreDifferentFieldCount(false) .acceptCharsAfterQuotes(false) .detectBomHeader(false) .maxBufferSize(16777216);
IndexedCsvReader examples
Section titled “IndexedCsvReader examples”Indexed reading of a CSV file
Section titled “Indexed reading of a CSV file”try (IndexedCsvReader<CsvRecord> csv = IndexedCsvReader.builder().ofCsvRecord(file)) { CsvIndex index = csv.getIndex();
System.out.println("Items of last page:"); int lastPage = index.getPageCount() - 1; List<CsvRecord> csvRecords = csv.readPage(lastPage); csvRecords.forEach(System.out::println);}
CsvWriter examples
Section titled “CsvWriter examples”Iterative writing of some data to a writer
Section titled “Iterative writing of some data to a writer”var sw = new StringWriter();CsvWriter.builder().build(sw) .writeRecord("header 1", "header 2") .writeRecord("value 1", "value 2");
System.out.println(sw);
Iterative writing of a CSV file
Section titled “Iterative writing of a CSV file”try (CsvWriter csv = CsvWriter.builder().build(file)) { csv .writeRecord("header 1", "header 2") .writeRecord("value 1", "value 2");}
Custom settings
Section titled “Custom settings”CsvWriter.builder() .fieldSeparator(',') .quoteCharacter('"') .quoteStrategy(QuoteStrategies.ALWAYS) .commentCharacter('#') .lineDelimiter(LineDelimiter.LF);