Я читаю числа из файла, чтобы выполнить сортировку слиянием.Сортировка слиянием должна выполняться как внешняя сортировка, так как это большой список чисел и очень мало доступной основной памяти.У меня есть рабочая реализация, она использует BufferedOutputStream для ускорения вывода, и я хочу сделать то же самое для входного потока.Тем не менее, ввод должен быть прочитан из двух разных мест для выполнения слияния.
По существу, если у меня есть:
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)
для доступа к другим частям файла, как мне узнать, когда в следующий раз Файл будет вызван для получения дополнительных данных, и, следовательно, выполнить поиск, прежде чем запрашивать дополнительные данные.Альтернативно, возможно ли иметь два файла RandomAccessFiles для одного и того же базового файла?