ファイルの一部をバイト配列に読み込むメソッドをコーディングしたいと考えています。このために、私は fileinputstream とバッファリングされた入力ストリームを使用しています。
このような:
fis = new FileInputStream(file);
bis = new BufferedInputStream(fis);
dis = new DataInputStream(bis);
メソッド名「OpenFile(String File)」を呼び出して、これを 1 回だけ行います。このメソッドでファイルが開かれたら、「ReadParts(byte[] buffer, int offset, int len)」という関数で操作を試みます。
dis.read(buffer, offset, len);
for(int i = 0; i < buffer.length; i++) System.out.print((char)buffer[i]);
// used data:
// file = "C:\Temp\test.txt" with a size of 949
// buffer: always in this case with a size of 237, except for the last one its 238
// offsets: 0, 237, 474, 711
// len is always 237, except for the last one its 238
行 dis.read() は、最初のステップの後に常に indexOutOfBounds エラーメッセージをスローしますが、その理由と内容がわかりません。インデックスの問題が見つからないため、netbeansデバッガーを使用しても役に立ちませんでした.....