gpt4 book ai didi

java - FileChannel.transferTo() 不断传输 0 字节?

转载 作者:行者123 更新时间:2023-12-01 05:15:16 26 4
gpt4 key购买 nike

我问this question昨天,我确信单线程文件服务器能够满足我的需求。是的,使用单线程,文件服务器工作得很好(仅适用于小文件),它每秒可以处理大约 300 个请求,现在的问题是 write(我使用 FileChannel .transferTo()) 部分服务器将在服务大文件时阻塞相当长的一段时间,这会阻止其他连接的连接。

我注意到FileChannel.transferTo()在传输大文件(大约800KB)时有时会传输0字节。它失败并显示:java.io.IOException:再试一次。这是在 Android 上。

因为我将 FileChannel.transferTo() 放入循环中,所以我可以得到 FileChannel.transferTo() 运行数千次以最终传输整个文件的情况.

我的问题是,是什么原因导致 FileChannel.transferTo() 无法传输请求的字节?如何解决这个问题并使我的文件服务器更快地处理大文件?

最佳答案

该方法不可能同时返回零并引发异常,但我建议当您得到“重试”时,您应该减少传输计数。我会继续减半,直到病情消失。无论如何,您都必须在循环中调用 transferTo(),因此它不会对您的代码产生太大影响。

关于java - FileChannel.transferTo() 不断传输 0 字节?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11338108/

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