关于zip对文本进行压缩和解压
来源:互联网 发布:修改照片的软件 编辑:程序博客网 时间:2024/05/29 13:30
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
import java.util.zip.ZipOutputStream;
import org.apache.commons.codec.binary.Base64;
public class ZipUtil {
/**
* 使用zip进行压缩
*
* @param str
* @author: pzx
* 压缩前的文本
* @return 返回压缩后的文本
*/
public static final String zipBase64String(String str) {
if (str == null)
return null;
byte[] compressed;
ByteArrayOutputStream out = null;
ZipOutputStream zout = null;
String compressedStr = null;
try {
out = new ByteArrayOutputStream();
zout = new ZipOutputStream(out);
zout.putNextEntry(new ZipEntry("zip"));
zout.write(str.getBytes("utf-8"));
zout.closeEntry();
compressed = out.toByteArray();
compressedStr = Base64.encodeBase64String(compressed);
} catch (IOException e) {
e.printStackTrace();
compressed = null;
} finally {
if (zout != null) {
try {
zout.close();
} catch (IOException e) {
}
}
if (out != null) {
try {
out.close();
} catch (IOException e) {
}
}
}
return compressedStr;
}
/**
* 使用zip进行解压缩
*
* @param compressed
* Base64转码的压缩文本
* @return 解压后的字符串
*/
public static String unzipBase642String(String base64CompressedStr) {
if (base64CompressedStr == null) {
return null;
}
ByteArrayOutputStream out = new ByteArrayOutputStream();
ByteArrayInputStream in = null;
ZipInputStream ginzip = null;
String decompressed = null;
try {
byte[] compressed = Base64.decodeBase64(base64CompressedStr);
in = new ByteArrayInputStream(compressed);
ginzip = new ZipInputStream(in);
ginzip.getNextEntry();
byte[] buffer = new byte[1024];
int offset = -1;
while ((offset = ginzip.read(buffer)) != -1) {
out.write(buffer, 0, offset);
}
decompressed = out.toString("utf-8");
} catch (IOException e) {
e.printStackTrace();
} finally {
if (out != null) {
try {
out.close();
} catch (IOException e) {
}
}
if (ginzip != null) {
try {
ginzip.close();
} catch (IOException e) {
}
}
if (in != null) {
try {
in.close();
} catch (IOException e) {
}
}
}
return decompressed;
}
}
- 关于zip对文本进行压缩和解压
- java对zip进行压缩和解压
- 对zip压缩包进行解压
- 使用PHP对文件进行压缩解压(zip)
- ZIP压缩和解压
- ZIP压缩和解压
- zip压缩和解压
- PHP 对字符串进行压缩和解压
- JAVA对数据进行压缩和解压
- php对zip文件解压和压缩--改进
- python压缩和解压zip
- java压缩和解压zip
- Java ZIp 压缩和解压
- 文件压缩和解压zip
- 压缩和解压zip文件
- android -解压和压缩zip
- java zip压缩和解压
- Java进行zip包压缩/解压
- POJ 3185 The Water Bowls(高斯消元)
- C#入门7.4——二维数组的使用
- Hiho coder: #1200 : Increase Charisma Points
- 换手均值
- POJ-1287-Networking(克鲁斯卡尔)
- 关于zip对文本进行压缩和解压
- 蓝牙4.0入门(2)开始程序编写(一)编写第一个亮灯程序
- ORACLE-排序技巧ROW_NUM,ROW_NUMBER,RANK,DENSE_RANK,
- 求二叉树的先序遍历
- web.xml配置加载顺序
- NODEJS MYSQL ASYNC 整合事务支持
- java反射机制—— 利用反射机制实例化对象
- 使用zlib库解压*.zip文件
- linux音频alsa驱动分析之三 解码器