为什么我会收到 ArraIndexOutOfBoundException?
Why am I getting an ArraIndexOutOfBoundException?
我正在尝试将从文件读取的字节数组 (fileData) 复制到另一个字节数组 (subdata)(代码下方):
ByteBuffer inputBuffer = decoderInputBuffers[intBufIndex];
int limit = inputBuffer.capacity();
int pos = frameIndex * limit;
byte[] subData = new byte[limit];
System.arraycopy(fileData, pos, subData, 0, subData.length);
我的问题是为什么我会收到这个错误?
java.lang.ArrayIndexOutOfBoundsException: src.length=732542 srcPos=0 dst.length=1572864 dstPos=0 length=1572864
这怎么可能,因为我明确地说了数组的大小应该是多少。
如果您查看文档(评论中有 linknd),它说该函数的最后一个参数是:
length − This is the number of array elements to be copied.
因此,如果您仔细观察,您正试图从 732542 的数组中复制 1572864,这就是您得到异常的原因
我正在尝试将从文件读取的字节数组 (fileData) 复制到另一个字节数组 (subdata)(代码下方):
ByteBuffer inputBuffer = decoderInputBuffers[intBufIndex];
int limit = inputBuffer.capacity();
int pos = frameIndex * limit;
byte[] subData = new byte[limit];
System.arraycopy(fileData, pos, subData, 0, subData.length);
我的问题是为什么我会收到这个错误?
java.lang.ArrayIndexOutOfBoundsException: src.length=732542 srcPos=0 dst.length=1572864 dstPos=0 length=1572864
这怎么可能,因为我明确地说了数组的大小应该是多少。
如果您查看文档(评论中有 linknd),它说该函数的最后一个参数是:
length − This is the number of array elements to be copied.
因此,如果您仔细观察,您正试图从 732542 的数组中复制 1572864,这就是您得到异常的原因