我有一个大的.csv
文件(大约300MB),从远程主机读取并解析成目标文件,但我不需要将所有行都复制到目标文件中。在复制时,我需要从源中读取每一行,如果通过某些谓词,就将该行添加到目标文件中。
我认为Apache CSV(apache.commons.csv
)只能解析整个文件。
CSVFormat csvFileFormat = CSVFormat.EXCEL.withHeader();
CSVParser csvFileParser = new CSVParser("filePath", csvFileFormat);
List<CSVRecord> csvRecords = csvFileParser.getRecords();
所以我不能使用BufferedReader
。根据我的代码,每行应该创建一个new CSVParser()
实例,这看起来效率低下。
在上述情况下,我如何解析单个行(表的已知标题)?