javaで巨大ファイルをバッチ処理で読み込む方法

Javaでは、BufferedReaderで大きなファイルを逐次的に読み込むことができます。

サンプルコードを以下に示します。

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;

public class ReadLargeFile {
    public static void main(String[] args) {
        String filePath = "path_to_large_file.txt";
        int batchSize = 1000; // 设置每次读取的行数
        
        try (BufferedReader reader = new BufferedReader(new FileReader(filePath))) {
            String line;
            int count = 0;
            
            while ((line = reader.readLine()) != null) {
                // 处理每一行数据
                processLine(line);
                
                count++;
                if (count == batchSize) {
                    // 达到批次大小后进行操作,例如写入数据库等
                    performBatchOperation();
                    
                    count = 0; // 重置计数器
                }
            }
            
            // 处理剩余的数据
            if (count > 0) {
                performBatchOperation();
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    
    private static void processLine(String line) {
        // 处理每一行数据的逻辑
        System.out.println(line);
    }
    
    private static void performBatchOperation() {
        // 执行批次操作的逻辑
        System.out.println("Performing batch operation");
    }
}

上記の例では、path_to_large_file.txtを実際に読み込みたいファイルへのパスに置き換えてください。 batchSizeを設定することで、一度に読み込む行数を制御できます。 processLineメソッドで、各データ行を処理する独自のロジックを記述できます。 performBatchOperationメソッドでは、データをデータベースに書き込むなど、バッチ操作を実行するための独自のロジックを記述できます。

BufferedReaderで大きなファイルを読み込むときは、try-with-resources構文を使用してリソースがきちんと閉じられるようにすることを推奨します。

bannerAds