В ответ на мой ответ на вопрос о чтении файлов комментатор заявил, что FileInputStream.read (byte [])
"не гарантирует заполнения буфера. . "
File file = /* ... */
long len = file.length();
byte[] buffer = new byte[(int)len];
FileInputStream in = new FileInputStream(file);
in.read(buffer);
(Код предполагает, что длина файла не превышает 2 ГБ)
Помимо исключения IOException
, из-за того, что метод read
может не получить весь файл содержимое?
РЕДАКТИРОВАТЬ:
Идея кода (и цель OP вопроса, на который я ответил) состоит в том, чтобы прочитать весь файл во фрагмент памяти одним махом, поэтому buffer_size = размер_файла .