从GZIPOutputStream计算压缩文件大小

时间:2012-09-13 06:28:09

标签: java gzipoutputstream

我正在压缩文件并将其写入输出流,如何将压缩文件大小放入响应标头

    os = response.getOutputStream();
    gzos = new GZIPOutputStream(os);
    fin = new FileInputStream(file);
    in = new BufferedInputStream(fin);

    byte[] buffer = new byte[1024];
    int i;
    while ((i = in.read(buffer)) >= 0) {
           gzos.write(buffer, 0, i);
     }
    gzos.flush();

3 个答案:

答案 0 :(得分:0)

你应该看看fin.Position

答案 1 :(得分:0)

你不这样做。原因是:

一旦响应缓冲区已满,

响应将被提交,也就是说,如果你正在gzip一个20MB的大文件,那么在gzip完成之前标题已经被发送到客户端,并且当gzip完成时你无法修改提交的头。

答案 2 :(得分:0)

你没有。原因:你不必。 servlet容器会为你处理它。