public Map readCsv(MultipartFile customerCsvMultipartFile) throws IOException, CsvValidationException {
List customerCsvData;
Map migrationCsvMap = new HashMap();
validateCsvFile(customerCsvMultipartFile);
try (InputStreamReader customerReader = new InputStreamReader(customerCsvMultipartFile.getInputStream());) {
CsvToBean customerCsvToBean = new CsvToBeanBuilder(customerReader)
.withType(CustomerCsvDto.class)
.withIgnoreLeadingWhiteSpace(true)
.build();
customerCsvData = customerCsvToBean.parse();
migrationCsvMap.put("customerCsvData", customerCsvData);
return migrationCsvMap;
} catch (Exception e) {
throw new RuntimeException(e.getMessage());
}
}
Я использую OpenCsv, и он предоставляет функцию для чтения всего CSV для непосредственного преобразования в мои пользовательские DTO с использованием аннотаций @CsvBindByName(column = "csv_column_name") чтобы напрямую сопоставить столбец со свойством DTO. Я хочу читать CSV пакетами, где я буду передавать количество записей, которые я прочитаю в первую очередь, а затем начну с числа, которое я прочитал. Как я могу добиться пакетного чтения с помощью OpenCsv в Java?
[code]public Map readCsv(MultipartFile customerCsvMultipartFile) throws IOException, CsvValidationException { List customerCsvData; Map migrationCsvMap = new HashMap(); validateCsvFile(customerCsvMultipartFile); try (InputStreamReader customerReader = new InputStreamReader(customerCsvMultipartFile.getInputStream());) { CsvToBean customerCsvToBean = new CsvToBeanBuilder(customerReader) .withType(CustomerCsvDto.class) .withIgnoreLeadingWhiteSpace(true) .build(); customerCsvData = customerCsvToBean.parse(); migrationCsvMap.put("customerCsvData", customerCsvData); return migrationCsvMap; } catch (Exception e) { throw new RuntimeException(e.getMessage()); } } [/code] Я использую OpenCsv, и он предоставляет функцию для чтения всего CSV для непосредственного преобразования в мои пользовательские DTO с использованием аннотаций @CsvBindByName(column = "csv_column_name") чтобы напрямую сопоставить столбец со свойством DTO. Я хочу читать CSV пакетами, где я буду передавать количество записей, которые я прочитаю в первую очередь, а затем начну с числа, которое я прочитал. Как я могу добиться пакетного чтения с помощью OpenCsv в Java?