`
yangxiutian
  • 浏览: 61208 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

用Deflater与Inflater实现字节的压缩与解压

阅读更多

百度了一下,deflate就是zip压缩“ZIP,是一个计算机文件的压缩的算法,原名Deflate(真空)

 

package com.yangxiutian;

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.util.zip.DataFormatException;
import java.util.zip.Deflater;
import java.util.zip.Inflater;

public class ZLibUtils {
	/**
	 * 用zip算法解压压缩字节
	 * @param zipByte 输入的压缩字节
	 * @return	解压好的解压字节
	 * @throws IOException
	 */
	public static byte[] decompress(byte[] zipByte) throws IOException {
		ByteArrayOutputStream aos=new ByteArrayOutputStream(); 
		Inflater inflater=new Inflater();
		inflater.setInput(zipByte); 
		byte[] buff=new byte[1024];
		int byteNum=0;
		while(!inflater.finished()){
			try {
				byteNum=inflater.inflate(buff);
				aos.write(buff,0,byteNum);
			} catch (DataFormatException e) {
				e.printStackTrace();
			}
		}
		return aos.toByteArray();
	}
	
	/**
	 * 用zip算法压缩字节
	 * @param zipByte 输入的待压缩字节
	 * @return	压缩就绪的字节
	 * @throws IOException
	 */
	public static byte[] compress(byte[] bytes) throws IOException {
		ByteArrayOutputStream aos=new ByteArrayOutputStream(); 
		Deflater inflater=new Deflater();
		inflater.setInput(bytes);
		inflater.finish();
		byte[] buff=new byte[1024];
		int byteNum=0;
		while(!inflater.finished()){
			byteNum=inflater.deflate(buff);
			aos.write(buff, 0, byteNum);
		}
		return aos.toByteArray();
	}

}
  • ZLibUtils.zip (626 Bytes)
  • 描述: 上面源码的文件,iteye要求要压缩 请您解压一下
  • 下载次数: 5
0
7
分享到:
评论

相关推荐

    字符串的压缩和解压

    根据给定文件的信息,本文将围绕“字符串的压缩与解压”这一主题展开,深入探讨字符串压缩和解压的基本原理、实现方法以及应用场景等多方面内容。 ### 字符串压缩和解压概述 字符串的压缩与解压是计算机科学中的一...

    基于Java的开源Winzip压缩工具Java版源码.zip

    2. **压缩和解压缩**:使用Deflater和Inflater类对文件内容进行压缩和解压缩。Deflater负责将原始数据压缩为字节流,而Inflater则将压缩后的字节流还原为原始数据。 3. **ZIP文件操作**:ZipOutputStream和...

    压缩和解压缩字符串

    使用Deflater,我们可以将原始字符串转换为压缩的字节数组。以下是一个简单的Deflater压缩字符串的步骤: 1. 创建一个Deflater对象,通常设置一个压缩级别(1-9),1是最快速但压缩率低,9是最慢但压缩率高。 2. ...

    各类压缩算法聚合

    Deflater和Inflater则是GZIP的底层实现,提供了更底层的压缩和解压缩功能。 接下来,我们关注几种常见的压缩算法: 1. Huffman编码:这是一种基于字符频率的无损压缩方法,通过对出现频繁的字符赋予较短的编码,...

    Js算法 zip_deflate(压缩)与zip_inflate(解压)

    解压缩时,我们先使用`FileReader`读取Blob内容,然后用`JSZip`实例化解压后的`zip`文件,最后从中提取所需的文件内容。 总结来说,JavaScript中的`zip_deflate`和`zip_inflate`涉及到数据的压缩和解压缩,这对于...

    JAVA文件压缩与解压缩实践(源代码+论文).rar

    4. **Deflater与Inflater**:`java.util.zip`包还提供了Deflater和Inflater类,它们分别用于数据压缩和解压缩。Deflater可以与任何输出流结合,将数据压缩成Deflate格式,而Inflater则可以与任何输入流结合,解压缩...

    使用inflater实现窗体布局

    这篇博客“使用inflater实现窗体布局”将深入探讨如何使用`LayoutInflater`来实现这一功能。 `LayoutInflater`是Android SDK中的一个关键类,它位于`android.view.LayoutInflater`包中。它的主要作用是从XML布局...

    JAVA文件压缩与解压缩实践(源代码+论文).zip

    4. **Deflater与Inflater**:`Deflater`是用于执行DEFLATE压缩算法的类,而`Inflater`用于解压DEFLATE格式的数据。这两个类可以用于自定义流处理,比如创建一个自定义的压缩流。 5. **文件读写操作**:在进行压缩...

    java 数据压缩的实现示例

    在Java中,我们可以使用标准库如`java.util.zip`来实现数据压缩,例如GZIP、Deflater和Inflater类提供了gzip和DEFLATE压缩算法的实现。 哈夫曼编码是一种可变长度的前缀编码方法,基于频率进行编码。构建哈夫曼树的...

    java做的一个压缩软件

    在Java中,`Deflater`和`Inflater`类用于实现DEFLATE压缩算法,这是ZIP格式所采用的标准。下面将详细介绍如何使用这些类进行文件压缩和解压缩。 1. **文件压缩**: - 创建`Deflater`对象并设置压缩级别(0-9,9为...

    JAVA文件压缩与解压缩实践(源代码+文档).zip

    4. **Deflater与Inflater**: `Deflater`类用于提供数据的压缩功能,而`Inflater`用于解压缩。它们可以直接与字节数组或流操作,提供了更多的灵活性。 5. **ZipEntry**: 在创建ZIP文件时,每个文件对应一个`Zip...

    Java 1.7以上通用解压工具通用解压工具.rar

    4. **Java的Inflater和Deflater**:这两个类是Java实现的通用压缩和解压缩引擎。Inflater用于解压缩数据,通常与DeflaterInputStream一起使用;Deflater用于压缩数据,常与DeflaterOutputStream结合。 5. **第三方...

    Android 图片压缩与解压的方法

    本文将深入探讨如何在Android环境中实现图片的压缩与解压,包括使用Android Studio提供的工具和库,以及一些关键的编程技巧。 一、Android图片压缩 1. **Bitmap对象**:在Android中,图片通常以Bitmap对象的形式...

    JAVA文件压缩与解压缩实践(源代码+论文)

    - 自定义压缩和解压缩,可能包括使用`Deflater`和`Inflater`实现。 这些实践示例可以帮助开发者更好地理解Java中压缩和解压缩的实现,同时也可以直接应用于项目中。 **五、论文分析** 论文部分可能涵盖了理论背景...

    基于Java的数据压缩与传输实例.zip

    3. **Deflater和Inflater**:除了GZIP,Java还提供了`Deflater`和`Inflater`类,它们分别用于数据压缩和解压缩,支持DEFLATE算法,这是ZIP文件格式的一部分。 4. **文件读写操作**:压缩和传输数据前,需要对本地...

Global site tag (gtag.js) - Google Analytics