読み取りに使用する以下のコードFiles
int bytesRead;
byte[] bytes = new byte[1000]; //buffer
FileInputStream fis = new FileInputStream(uploadedFile);
while ((bytesRead = fis.read(bytes)) != -1) {
fis.read(bytes, 0, bytesRead);
}
fis.close();
この入力ストリームから最大 b.length バイトのデータをバイト配列に読み取ります。このメソッドは、何らかの入力が利用可能になるまでブロックします。
配列を補充するように指定された場所はありませんが、正常に完了する までbytes
ストリームが充填されます。array
file
read.
しかし、この魔法を実現するために内部でどのように維持されているのでしょうか??
ソースコードを見たり、メソッドを読んだりしました
public int More ...read(byte b[]) throws IOException {
214 return readBytes(b, 0, b.length);
215 }
のreadBytes
ソースコードは
200 private native int More ...readBytes
(byte b[], int off, int len) throws IOException;
どのようにbytes
..
問題なく 500MB のファイルをアップロードしまし1000
たarray
。