FileInputStream.getChannel().position(123)
Это еще одна возможность в дополнение к RandomAccessFile
:
File f = File.createTempFile("aaa", null);
byte[] out = new byte[]{0, 1, 2};
FileOutputStream o = new FileOutputStream(f);
o.write(out);
o.close();
FileInputStream i = new FileInputStream(f);
i.getChannel().position(1);
assert i.read() == out[1];
i.close();
f.delete();
Это должно быть в порядке, поскольку документы для FileInputStream#getChannel
говорят, что:
Изменение позиции канала, явно или путем чтения, изменит позицию файла этого потока.
Я не знаю, какоднако этот метод сравнивается с RandomAccessFile
.