/**
* 接收request中的流
* 判断是否是gzip格式
*/
public static InputStream validateGzip(HttpServletRequest request) {
try {
String contentType = request.getContentType();
if (contentType != null && contentType.trim().length() > 0 && contentType.trim().equals("application/x-zip-compressed")) {
return unGzip(request);
}
return request.getInputStream();
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
/**
* 解压gzip文件
*/
public static InputStream unGzip(HttpServletRequest request) {
try {
GZIPInputStream gzip = new GZIPInputStream(request.getInputStream());
byte[] buf = new byte[1024];
int len;
ByteArrayOutputStream baos = new ByteArrayOutputStream();
while ((len = gzip.read(buf)) != -1) {
baos.write(buf, 0, len);
}
byte[] b = baos.toByteArray();
ByteArrayInputStream bs = new ByteArrayInputStream(b);
baos.flush();
baos.close();
gzip.close();
return new DataInputStream(bs);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
//压缩gzip
Writer pw = Util.createGzipPw(request, response);
pw.write(xmlinfo);
pw.flush();
pw.close();
// 將gzip文件寫入到流裏面
public static PrintWriter createGzipPw(HttpServletRequest request, HttpServletResponse response) throws IOException {
response.setContentType("application/x-zip-compressed");
response.addHeader("Content-disposition", "attachment; filename=\"data.zip\"");
response.addHeader("Cache-Control", "no-cache");
PrintWriter pw = new PrintWriter(new OutputStreamWriter(new GZIPOutputStream(response.getOutputStream()), "UTF-8"));
return pw;
}
分享到:
相关推荐
Java中的`GZIPOutputStream`和`GZIPInputStream`用于对文件进行GZIP压缩和解压缩。 4. **源代码实现**:实践中提供的源代码展示了如何使用Java API来实现文件和目录的压缩与解压缩。这可能包括读取文件,创建压缩流...
一个Java随书实例:用GZIP压缩解压文件,从源文件得到文件输入流,得到目标文件输出流,得到压缩输出流,设定读入缓冲区尺寸,弹出文件选择器,并判断是否点击了打开按钮,判断事件来自于哪个按钮,用于选择解压和...
在本文中,我们将深入探讨如何使用Java实现GZIP压缩和解压缩文件的源码。 首先,我们需要引入Java的`java.util.zip`包,这个包包含了处理GZIP和其他压缩格式所需的类。在Java中,`GZIPOutputStream`和`...
本篇文章将详细介绍如何在VC中利用解压缩库来处理Java中gzip压缩的数据。 gzip是一种广泛使用的数据压缩格式,主要应用于网络传输,它基于DEFLATE算法,可以有效地减小文件大小,从而提高传输效率。Java中提供了...
在本项目中,我们将关注如何使用pako库进行gzip压缩和解压缩,并解决在处理中英文内容时可能出现的乱码问题。 首先,让我们详细了解pako库。pako是基于zlib库的一个轻量级实现,它在浏览器和Node.js环境中都能运行...
本篇文章将深入探讨如何在Java中使用GZIP进行文件的压缩与解压缩操作。 首先,我们需要了解Java中的`java.util.zip`包,这个包提供了对ZIP和GZIP格式的支持。在GZIP操作中,我们主要会用到`GZIPOutputStream`和`...
在本文中,我们将深入探讨Java中的GZIP压缩技术,并结合HTTPWatch监测工具,理解其在实际网络请求中的应用。GZIP是一种广泛使用的数据压缩格式,它可以在网络传输中有效地减小文件大小,从而提高加载速度,减少...
Java 实现压缩与解压缩是Java编程中常见的一项任务,主要涉及到I/O流处理和压缩库的使用。本文将深入探讨如何使用Java进行文件的压缩和解压缩操作,以及涉及的相关知识点。 首先,Java标准库提供了`java.util.zip`...
本资源包“文件GZip压缩AES加密反向解密解压缩代码和jar”提供了完整的Java实现,使得开发者能够方便地对文件进行GZip压缩、AES加密,以及后续的解密和解压缩操作。下面将详细解释这些技术及其应用。 首先,GZip...
本篇文章主要聚焦于Java原生实现的GZIP压缩技术。GZIP是一种广泛使用的压缩算法,它基于DEFLATE算法,同时也被用于创建.gz格式的压缩文件。在Java中,我们可以直接使用java.util.zip包下的GZIPOutputStream和...
Java文件压缩与解压缩是Java开发中常见的操作,特别是在数据传输、存储优化和备份场景下。本实践项目提供了源代码和相关论文,帮助开发者深入理解这一主题。在Java中,我们可以利用内置的`java.util.zip`包来实现...
在Java编程语言中,文件的压缩与解压缩是常见的操作,尤其在数据传输、存储优化以及备份场景下显得尤为重要。本实践主要关注如何使用Java来处理ZIP格式的压缩文件,以下将详细介绍相关知识点。 1. **Java档案API...
2. **读取和写入数据**: 这次我们使用`BufferedInputStream`和`FileOutputStream`将解压缩的数据写入新的文件。 ```java BufferedInputStream bis = new BufferedInputStream(gis); FileOutputStream fos = new ...
Java文件压缩与解压缩实践是指利用Java编程语言实现对文件或文件夹进行压缩和解压缩操作。以下是该实践的描述: 技术概述: Java文件压缩与解压缩是指将一个或多个文件或文件夹打包成一个压缩文件,或者将压缩文件...
Java GZIP压缩与解压缩代码实例 Java GZIP压缩与解压缩是Java开发中常用的技术,它可以将数据压缩到小于原始大小的尺寸,减少存储和传输所需的空间和时间。在本文中,我们将详细介绍Java GZIP压缩与解压缩的代码...
`GZIPOutputStream`和`GZIPInputStream`可以用来实现GZIP压缩和解压缩。GZIP格式通常用于压缩单个文件,而不是多个文件的集合,因此其使用场景略有不同。 总结来说,Java提供了丰富的API来处理文件的压缩和解压缩,...