Что не так с FileInputStream.read (byte []) ?

В ответ на мой ответ на вопрос о чтении файлов комментатор заявил, что 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 = размер_файла .

7
задан Community 23 May 2017 в 11:53
поделиться