我有一个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 );
尝试copyLarge:
public static long copyLarge(InputStream input,
OutputStream output,
byte[] buffer) throws IOException
使用1MB左右的缓冲区大小