I am compressing File and writing it into outputstream, How to get the compressed file size to put in response header
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
you don't. Reason:
response will be committed once response buffer is full, that is to say, if you are gzipping a 20MB large file, the header was already sent to client before gzip completes, and you can not modify the committed header when gzip finishes.
You don't. Reason: you don't have to. The servlet container takes care of it for you.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.