使用GZIPOutputStream压缩上传而不在本地创建gzip文件

时间:2014-09-22 19:07:38

标签: java apache-httpclient-4.x gzipstream gzipoutputstream

在我使用GZIPOutputStream上传文件之前,我正在尝试在java中压缩文件。有没有办法将gzip文件存储在内存中以便上传,而不是让它在本地计算机上生成一个gzip压缩文件?

谢谢!

3 个答案:

答案 0 :(得分:2)

只需将GZipOutputStream直接连接到输出流并写入即可。没有必要的文件。

答案 1 :(得分:0)

使用GzipCompressingEntity

装饰内容实体
HttpPost httpPost = new HttpPost("https://host/stuff");
httpPost.setEntity(new GzipCompressingEntity(new FileEntity(new File("my.stuff"))));
CloseableHttpResponse response = httpclient.execute(httpPost);
try {
    EntityUtils.consume(response.getEntity());
} finally {
    response.close();
}

答案 2 :(得分:0)

通过写入临时文件并在完成gzip上传后对临时文件执行.deleteonexit解决了这个问题。

感谢您的帮助!