An open API service indexing awesome lists of open source software.

https://github.com/hendrixjoseph/opencsv-record-mapping

Plugin to allow Reading and Writing Java Records using OpenCsv
https://github.com/hendrixjoseph/opencsv-record-mapping

csv java-record java-records opencsv record

Last synced: 5 months ago
JSON representation

Plugin to allow Reading and Writing Java Records using OpenCsv

Awesome Lists containing this project

README

          

# Record Mapping Strategy for OpenCSV

A record mapping strategy that allows OpenCSV to read and write Java Records.

## How to use

To read from a CSV:

```java
var fileReader = new FileReader("myRecord.csv");

var csvReader = new CSVReader(fileReader);

var csvToBeanBuilder = new CsvToBeanBuilder(csvReader)
.withType(TestRecord.class)
.withMappingStrategy(new RecordMappingStrategy<>(MyRecord.class));

var actualList = csvToBeanBuilder.build().parse();

csvReader.close();
```

To write to a CSV:

```java
var fileWriter = new FileWriter("myRecord.csv");

var csvWriter = new StatefulBeanToCsvBuilder(fileWriter)
.withSeparator(CSVWriter.DEFAULT_SEPARATOR)
.withMappingStrategy(new RecordMappingStrategy<>(MyRecord.class))
.build();

csvWriter.write(list);

// If using a FileWriter, don't forget to close it otherwise Java might
// not finish writing to the file.
fileWriter.close();
```

## Why use RecordMappingStrategy to write?

Why not just use `HeaderColumnNameMappingStrategy`, which `RecordMappingStrategy` extends?

`HeaderColumnNameMappingStrategy` makes the column headers all-caps, which is okay until you
try to read the CSV file.