Ошибка при пропуске строки в OpenCsv JavaJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Ошибка при пропуске строки в OpenCsv Java

Сообщение Anonymous »

Код: Выделить всё

public Map readCsv(
MultipartFile customerCsvMultipartFile,
int chunkSize, int lastOffSet, boolean
markReadingCsvProcessComplete ) throws IOException {

List customerCsvData = new ArrayList();
Map migrationCsvMap = new HashMap();
try (InputStreamReader customerCsvReader = new InputStreamReader(customerCsvMultipartFile.getInputStream());)) {
CsvToBean customerCsvToBean = convertInputStreamReaderToCsvBean(CustomerCsvDto.class, customerCsvReader, lastOffSet);
Iterator customerCsvIterator = customerCsvToBean.iterator();

while ((customerCsvIterator.hasNext() && lastOffSet < chunkSize) {
CustomerCsvDto customer = customerCsvIterator.next();
customerCsvData.add(customer);
lastOffSet++;
}
if (!customerCsvIterator.hasNext()) {
markReadingCsvProcessComplete = true;
}
}

migrationCsvMap.put("customerCsvData", customerCsvData);
migrationCsvMap.put("lastOffSet",
Collections.singletonList(lastOffSet));
migrationCsvMap.put("markReadingCsvProcessComplete",
Collections.singletonList(markReadingCsvProcessComplete));
return migrationCsvMap;
}

private  CsvToBean convertInputStreamReaderToCsvBean(
Class classToConvert, InputStreamReader
inputStreamReader, int lastOffSet) {
return new CsvToBeanBuilder(inputStreamReader)
.withType(classToConvert)
.withIgnoreLeadingWhiteSpace(true)
.withSkipLines(lastOffSet)
.build();
}
Я пытаюсь прочитать файл частями, мой метод принимает chunkSize, что в моем случае составляет 500 строк, которые я хочу обрабатывать за раз, и LastOffSet измерьте индекс того, сколько файлов я прочитал, используя .withSkipLines(lastOffSet).

Я пытаюсь пропустить те строки, которые уже прочитаны, но проблема в том, что я повторяю он возвращается первым 500 записей верны, но затем возвращаются все записи с нулевыми значениями.

Я использую @CsvBindByName(column = "column_name") для сопоставления столбцов непосредственно с Dto. код>.

Подробнее здесь: https://stackoverflow.com/questions/791 ... encsv-java
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»