簡體   English   中英

從GZIPOutputStream計算壓縮文件大小

[英]Calculating Compressed Filesize from GZIPOutputStream

我正在壓縮File並將其寫入outputstream,如何獲取壓縮后的文件大小以放入響應頭中

    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();

你應該看看fin.Position

你不知道 原因:

響應緩沖區已滿時,將提交響應,也就是說,如果您對20MB的大文件進行gzip壓縮,則標頭已在gzip完成之前發送給客戶端,並且在gzip完成時無法修改已提交的標頭。

你不知道 原因:您不必。 servlet容器會為您處理它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM