[英]java.lang.ArrayIndexOutOfBoundsException when creating array from JDBC ResultSet
[英]java.lang.ArrayIndexOutOfBoundsException on FileOutputStream when receiving data from Server
我想开发一个从服务器接收文件的 android 应用程序。
服务器首先发送一个带有(FileOriginalName and FileLength)的数据包,然后它开始发送数据包(一个接一个 / bloc by bloc),每个数据包包含(8Kb file datas and blocIndex) 。
当我收到第一个数据包时,我创建一个给定长度的文件:
RandomAccessFile f = null;
try {
f = new RandomAccessFile(originalFileName, "rw");
f.setLength(length);
} catch (IOException e) {
e.printStackTrace();
}
然后我每次从服务器接收数据包时调用以下代码:
FileOutputStream _fOS = new FileOutputStream(fileOriginalPath);
_fOS.write(blockData, blockIndex << 13, blockData.length);
_fOS.close();
我在 _fOS.write 上收到以下错误:
java.lang.ArrayIndexOutOfBoundsException:长度=5077; 区域开始=8192; 区域长度=5077
我找到了解决方案,
对于第一个数据包,我只保存originalFileName ,
对于数据包,
for each received packet i call the following method
RandomAccessFile f = new RandomAccessFile(originalFileName, "rw");
f.seek(blockIndex << 13);
f.write(blockData);
f.close();
希望这会有所帮助,谢谢
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.