在代码中,我使用字节缓冲区从2个整数生成一个字节数组。当我尝试将数组写入输出流时,我得到一个ArrayIndexOutOfBounds异常。 OutputSteam中write(array,offset,length)方法的length参数认为数组小于数组长度,即使我从数组本身传递属性也是如此。我通过编写虚拟数据来检查文件是否足够大但我仍然得到相同的异常。
OutputStream out = new FileOutputStream("File");
ByteBuffer buff = ByteBuffer.alocate(Integer.BYTES*2);
buff.putInt(18);
buff.putInt(32);
byte[] array = buff.array();
out.write(array, 0, array.length); // Heres where the problem comes in
答案 0 :(得分:1)
好吧,一个arrray有N个对象,最后一个对象被N-1索引,因为它从0开始.Array.Length是N,你想要N-1。