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
- Host: GitHub
- URL: https://github.com/hendrixjoseph/opencsv-record-mapping
- Owner: hendrixjoseph
- Created: 2024-03-11T13:17:56.000Z (almost 2 years ago)
- Default Branch: master
- Last Pushed: 2025-01-27T19:51:22.000Z (11 months ago)
- Last Synced: 2025-06-13T18:09:04.530Z (7 months ago)
- Topics: csv, java-record, java-records, opencsv, record
- Language: Java
- Homepage: https://mvnrepository.com/artifact/com.joehxblog/opencsv-record-mapping
- Size: 13.7 KB
- Stars: 0
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
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.