如何在java中将大型二进制文件从服务器传输到客户端

时间:2012-04-19 09:42:31

标签: java

我正在尝试从客户端启动文件下载。我所拥有的只是一个包含服务器端二进制文件的InputStream。我不知何故需要找出一种方法将其转储到块中的OutputStream(我尝试一次写入整个字节数组,并在文件超过100MB时遇到OutOfMemoryException)。任何帮助将不胜感激......

1 个答案:

答案 0 :(得分:3)

同时阅读和写作。

import org.apache.commons.fileupload.util.Streams;
import org.apache.commons.io.FileUtils;

        long size = sourceFile.length();
        if (size <= Integer.MAX_VALUE)
            response.setContentLength((int)size);

        InputStream in = FileUtils.openInputStream(sourceFile);
        OutputStream out = response.getOutputStream();
        Streams.copy(in, out, false);