是的,Apache Commons CSV框架提供了一种内存高效的增量/顺序模式用于读取大文件。下面是一个示例代码:
import org.apache.commons.csv.CSVFormat;
import org.apache.commons.csv.CSVParser;
import org.apache.commons.csv.CSVRecord;
import java.io.FileReader;
import java.io.IOException;
import java.io.Reader;
public class CSVReaderExample {
public static void main(String[] args) {
String filePath = "path/to/your/csv/file.csv";
try (Reader reader = new FileReader(filePath);
CSVParser csvParser = new CSVParser(reader, CSVFormat.DEFAULT)) {
for (CSVRecord csvRecord : csvParser) {
// 处理每一行数据
String column1 = csvRecord.get(0);
String column2 = csvRecord.get(1);
// 打印数据
System.out.println("Column 1: " + column1);
System.out.println("Column 2: " + column2);
System.out.println("--------------------");
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
以上代码使用CSVParser
类从CSV文件中逐行读取数据。CSVParser
会自动处理大文件的内存高效读取,只将当前行加载到内存中。
你可以通过调整CSVFormat
的参数来适应不同的CSV文件格式。例如,可以使用CSVFormat.TDF
来处理制表符分隔的文件。
请注意,在处理大文件时,建议使用try-with-resources
语句来确保资源的正确关闭。