`
zhangwe415
  • 浏览: 11453 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

java中的GZIP压缩学习(二)

    博客分类:
  • java
阅读更多
这是修改之后的代码可以实现解压和压缩,注意数据的编码
	/**
	 * 数据压缩
	 * @param data
	 * @return
	 */
	public static byte[] dataCompress(byte[] data) {
		GZIPOutputStream gos;
		try {
			ByteArrayInputStream bais = new ByteArrayInputStream(data);
			ByteArrayOutputStream baos = new ByteArrayOutputStream();
			gos = new GZIPOutputStream(baos);
			
			byte[] buf = new byte[1024];
			int num;
			while ((num = bais.read(buf)) != -1) {
				gos.write(buf, 0, num);
			}
			gos.finish();
			gos.flush();
			gos.close();
			byte[] output = baos.toByteArray();  
			return output;
		} catch (IOException e) {
			e.printStackTrace();
		}
		return null;
	}

	/**
	 * 数据解压缩
	 * @param data
	 * @return
	 */
	public static byte[] dataDecompress(byte[] data){
		try {
			ByteArrayInputStream bais = new ByteArrayInputStream(data);
			GZIPInputStream gis = new GZIPInputStream(bais);
			ByteArrayOutputStream baos = new ByteArrayOutputStream();
			byte[] buf = new byte[1024];
			int num;
			while((num=gis.read(buf))!=-1){
				baos.write(buf, 0, num);
			}
			gis.close();
			byte[] ret = baos.toByteArray();
			baos.close();
			return ret;
		} catch (IOException e) {
			e.printStackTrace();
			return null;
		}
	}
	
	public static void main(String[] args) throws Exception {
		String a = "算法设计阿拉斯加分类啊沙发里的说法 啊大家都是垃圾发了疯啊";
		byte[] c = a.getBytes("UTF-8");
		System.out.println(c.length);
		byte[] d = compress(c);
		System.out.println(d.length);
		byte[] e = dataDecompress(d);
		System.out.println(e.length);
		System.out.println(new String(e,"UTF-8"));
	}
分享到:
评论

相关推荐

    Java用GZIP压缩解压文件.rar

    一个Java随书实例:用GZIP压缩解压文件,从源文件得到文件输入流,得到目标文件输出流,得到压缩输出流,设定读入缓冲区尺寸,弹出文件选择器,并判断是否点击了打开按钮,判断事件来自于哪个按钮,用于选择解压和...

    Java用GZIP压缩解压文件源码

    在本文中,我们将深入探讨如何使用Java实现GZIP压缩和解压缩文件的源码。 首先,我们需要引入Java的`java.util.zip`包,这个包包含了处理GZIP和其他压缩格式所需的类。在Java中,`GZIPOutputStream`和`...

    java实现gzip ajax请求gzip压缩

    本文将深入探讨如何在Java后端实现对gzip压缩的处理,以便于Ajax请求能够正确地进行gzip压缩通信。 首先,我们需要理解gzip压缩的工作原理。gzip是一种基于DEFLATE算法的压缩格式,它会将连续的数据流分成多个块...

    vc中用来解压缩Java中gzip压缩的数据的解压缩库

    本篇文章将详细介绍如何在VC中利用解压缩库来处理Java中gzip压缩的数据。 gzip是一种广泛使用的数据压缩格式,主要应用于网络传输,它基于DEFLATE算法,可以有效地减小文件大小,从而提高传输效率。Java中提供了...

    Java用GZIP压缩解压文件

    要使用GZIP压缩文件,我们首先创建一个`FileOutputStream`对象,然后通过它创建一个`GZIPOutputStream`。将要压缩的数据写入`GZIPOutputStream`,完成后记得关闭流。以下是一个简单的示例: ```java import java.io...

    JAVA源码Java用GZIP压缩解压文件JAVA源码Java用GZIP压缩解压文件

    java,JAVA源码Java用GZIP压缩解压文件JAVA源码Java用GZIP压缩解压文件

    Java用GZIP压缩解压文件.7z

    在Java编程语言中,GZIP是一种常用的文件压缩格式,它基于DEFLATE算法,可以用于压缩和解压缩数据。在处理大文件或者网络传输时,使用GZIP进行压缩可以显著减少数据量,提高效率。本篇文章将深入探讨如何在Java中...

    pako gzip 压缩和解压缩(支持中文)

    在本项目中,我们将关注如何使用pako库进行gzip压缩和解压缩,并解决在处理中英文内容时可能出现的乱码问题。 首先,让我们详细了解pako库。pako是基于zlib库的一个轻量级实现,它在浏览器和Node.js环境中都能运行...

    Java用GZIP压缩解压文件.zip

    对于解压缩,我们需要使用GZIPInputStream来读取GZIP压缩后的数据并将其写入到新的文件中。以下是解压缩文件的代码示例: ```java import java.io.*; import java.util.zip.*; public class GZipExample { ...

    Java GZip压缩使用以及解决包找不到问题

    在Java编程中,GZip压缩是一种常见的数据压缩技术,它基于GNU Zip算法,可以有效地减小文件大小,便于网络传输或存储。GZip压缩在Java中的应用通常涉及到`java.util.zip`包中的类,如`GZIPOutputStream`和`...

    java源码:Java用GZIP压缩解压文件.rar

    在实际项目中,当需要处理大量数据,如日志文件或网络传输时,使用Java进行GZIP压缩和解压缩可以显著减少数据量,提高效率。 在文件名称列表`codefans.net`中,可能包含的是一个网站URL或者是一个文件名,如果这是...

    Java压缩技术(四) GZIP——Java原生实现

    总的来说,Java提供的GZIP压缩功能是强大且易用的,`GZipUtils`类的实现可以帮助我们更便捷地在项目中使用这些功能。而`GZipUtilsTest`则确保了这些功能的正确性,使得我们在实际应用中可以更加放心。

    java源码资源Java用GZIP压缩解压文件

    java源码资源Java用GZIP压缩解压文件提取方式是百度网盘分享地址

    Java gzip压缩源码 web程序必备

    Java Gzip压缩是Web应用程序中常见的一种数据压缩技术,它基于GNU zip算法,可以有效减少网络传输的数据量,提高网页加载速度,节省带宽资源。本文将深入探讨Java中的Gzip压缩源码及其在Web程序中的应用。 首先,...

    基于java的用GZIP压缩解压文件.zip

    这个压缩包"基于java的用GZIP压缩解压文件.zip"包含了一个或多个示例,展示了如何在Java环境中利用GZIP进行文件操作。以下是关于Java中GZIP压缩和解压缩文件的相关知识点: 1. **GZIPOutputStream**:这是Java标准...

    JAVA GZIP.java

    java使用GZIP压缩传输

    基于java的开发源码-用GZIP压缩解压文件.zip

    基于java的开发源码-用GZIP压缩解压文件.zip 基于java的开发源码-用GZIP压缩解压文件.zip 基于java的开发源码-用GZIP压缩解压文件.zip 基于java的开发源码-用GZIP压缩解压文件.zip 基于java的开发源码-用GZIP压缩...

    java_gzip.rar_Compression_gzip_j2me gz_java压缩

    在Java中,我们主要使用`java.util.zip.GZIPOutputStream`类来进行GZIP压缩。以下是一个简单的示例: ```java import java.io.*; import java.util.zip.*; public class GzipExample { public static void main...

Global site tag (gtag.js) - Google Analytics