百度了一下,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();
}
}
分享到:
相关推荐
根据给定文件的信息,本文将围绕“字符串的压缩与解压”这一主题展开,深入探讨字符串压缩和解压的基本原理、实现方法以及应用场景等多方面内容。 ### 字符串压缩和解压概述 字符串的压缩与解压是计算机科学中的一...
2. **压缩和解压缩**:使用Deflater和Inflater类对文件内容进行压缩和解压缩。Deflater负责将原始数据压缩为字节流,而Inflater则将压缩后的字节流还原为原始数据。 3. **ZIP文件操作**:ZipOutputStream和...
使用Deflater,我们可以将原始字符串转换为压缩的字节数组。以下是一个简单的Deflater压缩字符串的步骤: 1. 创建一个Deflater对象,通常设置一个压缩级别(1-9),1是最快速但压缩率低,9是最慢但压缩率高。 2. ...
Deflater和Inflater则是GZIP的底层实现,提供了更底层的压缩和解压缩功能。 接下来,我们关注几种常见的压缩算法: 1. Huffman编码:这是一种基于字符频率的无损压缩方法,通过对出现频繁的字符赋予较短的编码,...
解压缩时,我们先使用`FileReader`读取Blob内容,然后用`JSZip`实例化解压后的`zip`文件,最后从中提取所需的文件内容。 总结来说,JavaScript中的`zip_deflate`和`zip_inflate`涉及到数据的压缩和解压缩,这对于...
4. **Deflater与Inflater**:`java.util.zip`包还提供了Deflater和Inflater类,它们分别用于数据压缩和解压缩。Deflater可以与任何输出流结合,将数据压缩成Deflate格式,而Inflater则可以与任何输入流结合,解压缩...
这篇博客“使用inflater实现窗体布局”将深入探讨如何使用`LayoutInflater`来实现这一功能。 `LayoutInflater`是Android SDK中的一个关键类,它位于`android.view.LayoutInflater`包中。它的主要作用是从XML布局...
4. **Deflater与Inflater**:`Deflater`是用于执行DEFLATE压缩算法的类,而`Inflater`用于解压DEFLATE格式的数据。这两个类可以用于自定义流处理,比如创建一个自定义的压缩流。 5. **文件读写操作**:在进行压缩...
在Java中,我们可以使用标准库如`java.util.zip`来实现数据压缩,例如GZIP、Deflater和Inflater类提供了gzip和DEFLATE压缩算法的实现。 哈夫曼编码是一种可变长度的前缀编码方法,基于频率进行编码。构建哈夫曼树的...
在Java中,`Deflater`和`Inflater`类用于实现DEFLATE压缩算法,这是ZIP格式所采用的标准。下面将详细介绍如何使用这些类进行文件压缩和解压缩。 1. **文件压缩**: - 创建`Deflater`对象并设置压缩级别(0-9,9为...
4. **Deflater与Inflater**: `Deflater`类用于提供数据的压缩功能,而`Inflater`用于解压缩。它们可以直接与字节数组或流操作,提供了更多的灵活性。 5. **ZipEntry**: 在创建ZIP文件时,每个文件对应一个`Zip...
4. **Java的Inflater和Deflater**:这两个类是Java实现的通用压缩和解压缩引擎。Inflater用于解压缩数据,通常与DeflaterInputStream一起使用;Deflater用于压缩数据,常与DeflaterOutputStream结合。 5. **第三方...
本文将深入探讨如何在Android环境中实现图片的压缩与解压,包括使用Android Studio提供的工具和库,以及一些关键的编程技巧。 一、Android图片压缩 1. **Bitmap对象**:在Android中,图片通常以Bitmap对象的形式...
- 自定义压缩和解压缩,可能包括使用`Deflater`和`Inflater`实现。 这些实践示例可以帮助开发者更好地理解Java中压缩和解压缩的实现,同时也可以直接应用于项目中。 **五、论文分析** 论文部分可能涵盖了理论背景...
3. **Deflater和Inflater**:除了GZIP,Java还提供了`Deflater`和`Inflater`类,它们分别用于数据压缩和解压缩,支持DEFLATE算法,这是ZIP文件格式的一部分。 4. **文件读写操作**:压缩和传输数据前,需要对本地...