gpt4 book ai didi

从服务器接收数据时 FileOutputStream 出现 java.lang.ArrayIndexOutOfBoundsException

转载 作者:行者123 更新时间:2023-12-01 17:29:07 25 4
gpt4 key购买 nike

我想开发一个从服务器接收文件的 Android 应用程序。

服务器首先发送一个带有(文件原始名称和文件长度)的数据包,然后开始发送数据包(逐一/逐 block ),每个数据包包含(8Kb文件数据和 block 索引)

当我收到第一个数据包时,我创建一个具有给定长度的文件:

      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: length=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();

希望对你有帮助,谢谢

关于从服务器接收数据时 FileOutputStream 出现 java.lang.ArrayIndexOutOfBoundsException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61157758/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com