【解決方法】javaで2つの大きなテキストファイルを効率的に比較するには?


2 つの非常に大きなテキスト ファイル (それぞれ 1 GB を超える) があり、それらを Java で比較して違いを特定する必要があります。 ただし、ファイル全体をメモリに読み取ってから行ごとに比較することは、メモリの制約により効率的な解決策ではありません。 Java でこれらの大きなファイルを効率的に比較するには、どのような方法が最適でしょうか? これを達成するために使用できるアルゴリズムまたはライブラリはありますか?

私が試したこと:

このために何をすべきか理解できないまで。

解決策 1

Java はわかりませんが、C# に似ているようです。

File.Open はすべてのデータを読み込むわけではありません。入力に StreamReader (C#、Java の同等物がわからない) を使用すると、各入力行を比較して読み取ることができ、行が異なる場合は出力できます。行番号と内容を 3 番目のファイルに保存するか、メモリに保持します。

メモリに保持している場合はしきい値があり、しきい値に達したらデータを処理し、領域をクリアして続行します。

エレガントではありませんが、実行可能です。

コメント

タイトルとURLをコピーしました