gpt4 book ai didi

java - 我的 Java 代码下载了一个文件,但大小错误

转载 作者:行者123 更新时间:2023-12-02 10:18:31 24 4
gpt4 key购买 nike

以下代码创建一个文件,但它无法打开,并且它创建的文件大小与我尝试下载的文件的大小不完全对应。 (以whatsapp更新程序链接为例):

 private static boolean download(){
try {
String outfile = "/sdcard/whatsapp.apk";
URL download = new URL("https://www.whatsapp.com/android/current/WhatsApp.apk");
ReadableByteChannel rbc = Channels.newChannel(download.openStream());
FileOutputStream fileOut = new FileOutputStream(outfile);
fileOut.getChannel().transferFrom(rbc, 0, 1 << 24);
fileOut.close();
rbc.close();
return true;
} catch (IOException ioe){
return false;
}
}

编辑:这是我的完整代码的缩短版本(完整代码允许主线程上的网络操作,并信任所有证书),还更改了问题中的代码。

测试表明没有抛出 IOException,并且代码完成时没有错误。那么,为什么下载的文件无法使用?

最佳答案

来自Javadoc :

Fewer than the requested number of bytes will be transferred if the source channel has fewer than count bytes remaining, or if the source channel is non-blocking and has fewer than count bytes immediately available in its input buffer.

这意味着不能保证立即保存整个文件。您应该将此调用放入一个循环中,一旦整个下载完成,该循环就会中断。

关于java - 我的 Java 代码下载了一个文件,但大小错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54506114/

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