在Java中,使用CSVReader进行批量读写操作可以通过以下步骤实现:
- 导入相关库:
import java.io.*; import com.opencsv.*;
- 创建一个方法来实现批量读取CSV文件:
public static void batchReadCSV(String inputFile, String outputFile) throws IOException { // 创建CSVReader对象 CSVReader reader = new CSVReader(new FileReader(inputFile)); // 读取CSV文件的标题行 String[] header = reader.readNext(); // 创建一个ArrayList来存储批量读取的数据 ListbatchData = https://www.yisu.com/ask/new ArrayList<>(); // 批量读取CSV文件中的数据 String[] nextLine; while ((nextLine = reader.readNext()) != null) { batchData.add(nextLine); // 设置批量大小,当达到批量大小时,将数据写入输出文件 if (batchData.size() >= BATCH_SIZE) { writeBatchToCSV(batchData, outputFile); batchData.clear(); } } // 将剩余的数据写入输出文件 if (!batchData.isEmpty()) { writeBatchToCSV(batchData, outputFile); } // 关闭CSVReader对象 reader.close(); }
- 创建一个方法来实现批量写入CSV文件:
public static void writeBatchToCSV(ListbatchData, String outputFile) throws IOException { // 创建CSVWriter对象 CSVWriter writer = new CSVWriter(new FileWriter(outputFile)); // 写入标题行 String[] header = batchData.get(0); writer.writeNext(header); // 写入批量数据 for (String[] data : batchData) { writer.writeNext(data); } // 关闭CSVWriter对象 writer.close(); }
- 在主方法中调用批量读取CSV文件的方法:
public static void main(String[] args) { String inputFile = "input.csv"; String outputFile = "output.csv"; try { batchReadCSV(inputFile, outputFile); System.out.println("批量读写CSV文件成功"); } catch (IOException e) { System.err.println("批量读写CSV文件失败"); e.printStackTrace(); } }
注意:在这个示例中,我们设置了一个默认的批量大小(BATCH_SIZE = 1000)。你可以根据实际需求调整批量大小。