Android 为什么我会收到ArraIndexOutOfBoundException?

Android 为什么我会收到ArraIndexOutOfBoundException?,android,arrays,byte,bytebuffer,Android,Arrays,Byte,Bytebuffer,我试图将从文件中读取的字节数组(fileData)复制到另一个字节数组(subdata)(代码下面): 我的问题是为什么我会犯这个错误 java.lang.ArrayIndexOutOfBoundsException: src.length=732542 srcPos=0 dst.length=1572864 dstPos=0 length=1572864 既然我明确地说了数组的大小应该是多少,这怎么可能呢 如果您查看文档(注释中有linknd),它会说函数的最后一个参数是: 长度− 这是要复

我试图将从文件中读取的字节数组(fileData)复制到另一个字节数组(subdata)(代码下面):

我的问题是为什么我会犯这个错误

java.lang.ArrayIndexOutOfBoundsException: src.length=732542 srcPos=0 dst.length=1572864 dstPos=0 length=1572864
既然我明确地说了数组的大小应该是多少,这怎么可能呢

如果您查看文档(注释中有linknd),它会说函数的最后一个参数是:

长度− 这是要复制的数组元素数


因此,如果仔细观察,您正试图从732542数组中复制1572864,这就是为什么会出现异常的原因

真的吗?我以为我正在尝试将文件数据的subdata.length复制到subdata中,还是我错了?这里有一个链接:()有人能证实吗?我想问题是我试图把732.542放到1.572.864中。Ad而不是sudata.length我应该给出fileData.lenth,这样我就不会试图获取不存在的数组。
java.lang.ArrayIndexOutOfBoundsException: src.length=732542 srcPos=0 dst.length=1572864 dstPos=0 length=1572864