マージソートを実行するために、ファイルから数値を読み取っています。マージ ソートは、数値の大きなリストであり、使用可能なメイン メモリがほとんどないため、外部ソートとして実行する必要があります。私は実用的な実装を持っています。これは BufferedOutputStream を使用して出力を高速化し、入力ストリームに対しても同じことをしたいと考えています。ただし、マージを実行するには、2 つの異なる場所から入力を読み取る必要があります。
基本的に、私が持っている場合:
RandomAccessFile File = new RandomAccessFile("File.dat", "rw");
BufferedInputStream Buffer = new BufferedInputStream(
new FileInputStream(File.getFD()));
DataInputStream InputStream = new DataInputStream(Buffer);
を使用していくつかの整数を読み取りますが、ファイルの他の部分にアクセスするためにInputStream.readInt()
も使用したいのですFile.seek(n)
が、ファイルが次にいつ呼び出されてより多くのデータが求められるかをどのように知るのでしょうか。または、同じ基本ファイルに対して 2 つの RandomAccessFiles を持つことは可能ですか?