在回答我对文件阅读问题的回答时,一位评论者表示FileInputStream.read(byte[])
“不保证会填满缓冲区”。
File file = /* ... */
long len = file.length();
byte[] buffer = new byte[(int)len];
FileInputStream in = new FileInputStream(file);
in.read(buffer);
(代码假设文件长度不超过2GB)
除了IOException
,还有什么可能导致该read
方法无法检索整个文件内容?
编辑:
代码的想法(以及我回答的问题的 OP 的目标)是一口气将整个文件读入一块内存,这就是为什么buffer_size = file_size。