Ho un grande file .csv
(circa 300 MB), che viene letto da un host remoto e analizzato in un file di destinazione, ma non è necessario copiare tutte le righe nel file di destinazione. Durante la copia, ho bisogno di leggere ogni riga dall'origine e se passa qualche predicato, aggiungi la linea al file di destinazione.Come posso elaborare un file di grandi dimensioni tramite CSVParser?
Suppongo che Apache CSV (apache.commons.csv
) può analizzare solo file intero
CSVFormat csvFileFormat = CSVFormat.EXCEL.withHeader();
CSVParser csvFileParser = new CSVParser("filePath", csvFileFormat);
List<CSVRecord> csvRecords = csvFileParser.getRecords();
quindi non posso usare BufferedReader
. In base al mio codice, è necessario creare un'istanza new CSVParser()
per ogni riga, che appare inefficiente.
Come è possibile analizzare una singola riga (con l'intestazione nota della tabella) nel caso sopra?