Как InputStream, так и FileReader в java максимальное значение смещения (предположим) - максимальное значение подписанного 32-битного int. Но что, если я пытаюсь читать содержимое за пределами этого лимита в 8 ГБ?
Фактически skip()
(как для FileReader, так и для InputStream) принимает long
а не int
поэтому ваше смещение будет ограничено 64-значным целым числом, что уже достаточно для реального размера файла.
Размер смещения довольно ограничен файловой системой, с которой вы работаете, или потоком подкласса; например: файловая система FAT32 не может иметь файловую систему, большую, чем 2G
offset
- это смещение в буфере чтения. Положение файла устанавливаетсяInputStream.skip()
илиRandomAccessFile.seek(),
оба из которых принимаютlong
параметры.