>>968
bis.read(byte[], int, int) の二つ目の引数、int offset は0で良い
そこのoffsetは第1引数のbyte[]に格納する際のオフセット
bisの内部のoffset(どこまで進んだか)はbis自体の内部で保持されてるから

bis.read(...)の後で
System.out.println(Arrasy.toString(byteList));
とかすると何が起きているか見えるはず