ファイル読み取りの質問に対する私の回答に応えて、コメント投稿者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の目標)は、ファイル全体を1回の急降下でメモリのチャンクに読み込むことです。そのため、buffer_size = file_sizeです。