Получить общее количество строк в CSV с помощью Super CSV

Мне нужно получить доступ к количеству строк для обрабатываемого CSV, но кажется, что Super CSV не имеет стандартной опции.

Код ниже, кажется, помогает:

private int getCsvFileTotalRows(InputStream inputStream) throws IOException {
    int totalRows = 0;
    BOMInputStream bomInputStream = new BOMInputStream(inputStream, BOMS);
    Reader fileReader = new BufferedReader(new InputStreamReader(bomInputStream,  StandardCharsets.UTF_8));
    CsvMapReader csvMapReader = new CsvMapReader(fileReader, CsvPreference.EXCEL_PREFERENCE);
    String[] headers = csvMapReader.getHeader(true);
    
    while (csvMapReader.read(headers) != null) {
        totalRows++;
    }
    return totalRows;
}

Но проблема в том, что уже существует код, который создает CsvMapReader на основе inputStream для обработки файла, поэтому добавление вышеуказанного метода не работает, поскольку экземпляр CsvMapReader уже создан с тем же экземпляром inputStream, который я пытаюсь использовать. в методе выше.

Как я могу добиться этого с помощью Super CSV?


person Carlos Gonzalez    schedule 08.08.2020    source источник