Спецификация java о том, как работает inputtreams в целом и FileInputStream
/ Files.newInputStream
, не указана до уровня детализации, который вы можете гарантировать , что он скажет базовому драйверу ОС прочитатьточно 2048 байт. В этом смысле ваш вопрос просто отвечает: Нет, нет входного потока, который всегда будет выдавать чтение 2048 байт в базовый файл.
Однако на практике вызов read(someByteArr)
для нового новогоразвернутый развернутый new FileInputStream
на ресурсе, где someByteArr
имеет размер точно 2048 байт, действительно всегда должен делать то, что вы хотите, даже если спецификация не совсем гарантирует это. Напишите код, который всегда вызывает метод чтения (или пропуска) с числом, кратным 2048, и предоставляет дополнительный API, который позволяет вам читать меньшие части этого, если вам необходимо.
Обратите внимание, что связанный документ углубляется в специфичные для ОСдетали до уровня, который java не позволяет вам делать (не прибегая к так называемому коду native
; вы не хотите идти туда, поверьте мне). Java не совсем подходит для этой работы.