`
wingware
  • 浏览: 146935 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

判断是否为GZIPInputStream格式(gzip压缩格式)

阅读更多
                InputStream ips = null;
		// 取前两个字节
		byte[] header = new byte[2];
		if (isGzip()) {
			try {
				BufferedInputStream bis = new BufferedInputStream(connection.getInputStream());
				bis.mark(2);
				int result = bis.read(header);
				// reset输入流到开始位置
				bis.reset();
				// 判断是否是GZIP格式
				int ss = (header[0] & 0xff) | ((header[1] & 0xff) << 8);
				if(result!=-1 && ss == GZIPInputStream.GZIP_MAGIC) {
					//System.out.println("为数据压缩格式...");
					ips= new GZIPInputStream(bis);
				} else {
			        // 取前两个字节
					ips= bis;
				}
			} catch (java.io.IOException e) {
				e.printStackTrace();
				ips = connection.getInputStream();
			}
		} else {
			ips = connection.getInputStream();
		}


判断header中是否包含有gzip
public boolean isGzip() {
		boolean gzip = false;
		for (String key : this.getHeaders().keySet()) {
			if (key.equalsIgnoreCase("Accept-Encoding") && this.getHeaders().get(key).contains("gzip")) {
				gzip = true;
				break;
			}
		}
		return gzip;
	}

分享到:
评论

相关推荐

    Java压缩技术(五) GZIP相关——浏览器解析

    在服务器端,如果需要支持GZIP压缩,可以检查HTTP请求头中的`Accept-Encoding`字段,判断客户端是否接受GZIP压缩。如果接受,服务器就可以使用`GZIPOutputStream`对响应内容进行压缩,然后发送给客户端。例如: ```...

    java zip rar(区分有无密码的RAR文件) gz ftp工具类

    3. **gzip压缩**: GZ是GNU的gzip文件格式,主要用于减少文件大小。在Java中,可以使用`java.util.zip.GZIPOutputStream`来压缩数据,`java.util.zip.GZIPInputStream`来解压缩。`GZUtil.java`可能包含了压缩和解...

    Android GZip的使用-开发中网络请求的压缩实例详解

    接着,读取输入流的前两个字节,用于判断数据是否是GZIP格式。GZIP流的标识符是0x1f8b,但在这个例子中,开发者发现实际读取到的是0x1e8b,这可能是由于代码处理错误导致的。正确的处理方式是在进行位移操作时,对第...

    java 解析 tar gz文件 两种方法

    Apache Commons Compress库是Java社区广泛使用的处理各种压缩格式的库,包括tar.gz。要使用这个库,首先需要将它的jar包添加到项目的类路径中。 1. 添加依赖: 如果你在Maven项目中,可以在pom.xml文件中添加以下...

    FileManager文件管理

    这个包提供了GZIPOutputStream和ZipOutputStream等类,用于创建GZIP和ZIP格式的压缩文件。例如,通过遍历文件或目录,创建ZipOutputStream,并将每个文件添加到压缩包中,实现文件的压缩。解压缩时,可以使用...

Global site tag (gtag.js) - Google Analytics