Ich habe eine große .csv
Datei (ca. 300 MB), die von einem Remote-Host gelesen und in eine Zieldatei geparst wird, aber ich muss nicht alle Zeilen in die Zieldatei kopieren. Während des Kopierens muss ich jede Zeile aus der Quelle lesen, und wenn sie ein Prädikat übergibt, füge die Zeile zur Zieldatei hinzu.Wie kann ich eine große Datei über CSVParser verarbeiten?
Ich nehme an, dass Apache CSV (apache.commons.csv
) nur ganze Datei
CSVFormat csvFileFormat = CSVFormat.EXCEL.withHeader();
CSVParser csvFileParser = new CSVParser("filePath", csvFileFormat);
List<CSVRecord> csvRecords = csvFileParser.getRecords();
analysieren kann
so kann ich nicht BufferedReader
verwenden. Basierend auf meinem Code sollte eine new CSVParser()
Instanz für jede Zeile erstellt werden, was ineffizient aussieht.
Wie kann ich im obigen Fall eine einzelne Zeile (mit bekanntem Header der Tabelle) analysieren?