Skip to content

Releases: osiegmar/FastCSV

v3.4.0

04 Nov 17:10
Compare
Choose a tag to compare

Added

  • Add skipLines(int) and skipLines(Predicate<String>, int) to CsvReader to skip lines before the actual CSV data starts

v3.3.1

23 Sep 16:10
Compare
Choose a tag to compare

Fixed

  • Fixed a bug in CsvReader where lines were mistakenly treated as empty and skipped when skipEmptyLines was set (default). These affected lines made up solely of field separators, solely empty quoted fields, or fields rendered empty after applying optional field modifiers.

v3.3.0

19 Sep 19:36
Compare
Choose a tag to compare

Added

  • Implement Flushable interface for CsvWriter to allow flushing the underlying writer
  • Implement autoFlush option for CsvWriter to automatically flush the writer after writing a record
  • Implement toConsole method for CsvWriter to write records to the console

v3.2.0

15 Jun 10:43
Compare
Choose a tag to compare

Added

  • Add writeRecord() to CsvWriter to allow writing records field by field
  • Allow overwriting the limits of 16K fields per record and 16M characters per field (#104); Thanks to @Obolrom!

v3.1.0

09 Mar 07:11
Compare
Choose a tag to compare

Added

  • Add acceptCharsAfterQuotes() to CsvReaderBuilder and IndexedReaderBuilder to allow even stricter parsing

Changed

  • Improved reader performance

v3.0.0

10 Jan 21:58
Compare
Choose a tag to compare

Added

  • IndexedCsvReader for random access to CSV files
  • FieldModifier for modifying fields while reading CSV files
  • Allow custom quote strategies for CsvWriter
  • CsvCallbackHandler for more flexible usage of CsvReader
  • Support for optional BOM header when reading CSV files
  • Method NamedCsvRecord.findField for optional field access
  • Allow READ comment strategy for CSV data with a header
  • Metadata for OSGi capability

Changed

  • Updated from Java 8 to Java 11
  • Updated naming (rows/lines -> records, columns -> fields, differentiate between lines and records)
  • NamedCsvReader replaced by CsvReader.builder().ofNamedCsvRecord()
  • build methods in CsvReaderBuilder with callback handlers and ofCsvRecord / ofNamedCsvRecord as convenience methods
  • Rename errorOnDifferentFieldCount() to ignoreDifferentFieldCount()
  • QuoteStrategy is now an interface – defaults are provided by QuoteStrategies
  • Throw CsvParseException instead of IOException when maximum field size is exceeded
  • NamedCsvRecord extends CsvRecord and provides more access methods
  • Raised the maximum field size to 16 MiB to match SUPER data type capabilities of Amazon Redshift
  • Limit the maximum field count per record to 16,384 to prevent OutOfMemoryErrors
  • Limit the maximum record size to 64 MiB to prevent OutOfMemoryErrors
  • Several performance improvements
  • Improved documentation and error messages

Removed

  • Removed isEmpty() in CsvRecord as it was formerly only used for skipping empty records

Fixed

  • Do not throw an exception when reading comments while enabling different field count checking

v2.2.2

13 May 05:50
Compare
Choose a tag to compare

Added

  • New quote strategy that adds quotes only for non-empty fields #80

v2.2.1

09 Nov 08:15
Compare
Choose a tag to compare

Fixed

  • Fixed a problem when refilling the input buffer while parsing nonconforming data (quote character within unquoted field) #67

v2.2.0

20 Jun 18:49
Compare
Choose a tag to compare

Added

  • Improved CsvReader performance for String input #63
  • Added configurable buffer size for CsvWriter #63

Removed

  • Erroneous random access file feature #59

v2.1.0

17 Oct 13:36
Compare
Choose a tag to compare

[2.1.0] - 2021-10-17

Added

  • Builder methods for standard encoding (UTF-8)
  • Comment support for writer
  • toString() method to CsvWriter and CsvWriterBuilder
  • Support for random access file operations

Changed

  • Improved error message when buffer exceeds (because of invalid CSV data) #52
  • Defined 'de.siegmar.fastcsv' as the Automatic-Module-Name (JPMS module name)