gpt4 book ai didi

java - Android将大输入流复制到文件非常慢

转载 作者:行者123 更新时间:2023-12-01 05:44:45 25 4
gpt4 key购买 nike

我有一个应用程序正在下载 zip 文件,然后将该文件复制到手机 SD 卡上的临时文件,但速度非常非常慢。

      InputStream in = new BufferedInputStream(url.openStream(), 1024);
File tempFile = File.createTempFile("arc", ".zip", targetDir); //target dir is a file
String tempFilePath = tempFile.getAbsolutePath();
OutputStream out = new BufferedOutputStream(new FileOutputStream(tempFile));

//copying file (in different void)
byte[] buffer = new byte[8192];
int len;
len = in.read(buffer);
enter code here

//it loops here for AGES
while (len >= 0) {
out.write(buffer, 0, len);
len = in.read(buffer);
}
in.close();
out.close();

我的文件大约有20MB,最初我的缓冲区大小为1024,然后将其更改为8192,认为这样可以加快速度,但似乎没有什么区别?我总是完成,并且没有出现任何错误,只是需要很长时间!

我已经尝试寻找解决方案,但我没有想出任何办法,所以我可能会以完全错误的方式解决这个问题?

有人能看出我做错了什么吗?

贝克斯

最佳答案

不要增加缓冲区大小。这可能会导致您的应用程序 MemoryOutOfBoundsException。

有多种因素会导致您的下载速度变慢。互联网连接较弱、文件传输和接收模式较弱也是原因。它还取决于设备的容量。检查您是否使用以下代码来创建输入流

URL u = new URL("enter url url here");
HttpURLConnection c = (HttpURLConnection) u.openConnection();
c.setRequestMethod("GET");
c.setDoOutput(true);
c.connect();
InputStream in = c.getInputStream();

谢谢迪帕克

关于java - Android将大输入流复制到文件非常慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6201624/

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