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 . Beim Kopieren muss ich jede Zeile aus der Quelle lesen und, wenn sie ein Prädikat übergibt, die Zeile zur Zieldatei hinzufügen.
Ich nehme an, dass Apache CSV ( apache. commons.csv ) kann nur die gesamte Datei analysieren
Code: Select all
CSVFormat csvFileFormat = CSVFormat.EXCEL.withHeader();
CSVParser csvFileParser = new CSVParser("filePath", csvFileFormat);
List csvRecords = csvFileParser.getRecords();
also kann ich BufferedReader nicht verwenden. Basierend auf meinem Code sollte für jede Zeile eine neue CSVParser()-Instanz erstellt werden, was ineffizient aussieht.
Wie kann ich eine einzelne Zeile analysieren (mit bekannte Kopfzeile der Tabelle) im obigen Fall?