2

クライアントからファイルのダウンロードを開始しようとしています。私が持っているのは、サーバー側のバイナリを含む InputStream だけです。どういうわけか、それをチャンクで OutputStream にダンプする方法を見つける必要があります (一度にバイト配列全体を書き込もうとしたところ、ファイルが 100MB を超えているため、OutOfMemoryException に遭遇しました)。どんな助けでも大歓迎です...

4

1 に答える 1

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);
于 2012-04-19T09:52:25.323 に答える