极慢的图像下载速度

问题描述 投票:0回答:1

我有一个Java Web应用程序,用户可以下载图片 我编写的下载方式是使用IOUtils.copy响应流 但下载4MB图像大约需要10秒,它的发生很慢。 这似乎是服务器在同一时间发送块。

这是我写的图像输出流的方式:

 OutputStream out = response.getOutputStream();
 FileInputStream stream = new FileInputStream(path);
 IOUtils.copy(stream, out);
 out.flush();
 out.close();

是否有一个更快的方法来做到这一点?

UPDATE

以下使用1MB缓存和copyLarge没有作出任何改变的代码。

        FileInputStream stream = new FileInputStream(path);
        byte[] buffer = new  byte[1024 * 1024];         
        IOUtils.copyLarge(stream, out,buffer );
java outputstream
1个回答
1
投票

尝试copyLarge:

public static long copyLarge(InputStream input,
             OutputStream output,
             byte[] buffer) throws IOException

使用1MB左右的缓冲区大小

© www.soinside.com 2019 - 2024. All rights reserved.