[英]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.