1、先用JDK的类进行ZIP文件解压
public List releaseWinZIPByList(String zipPath, String serverPath) {
//zipPath为需要解压的zip文件
//serverPath为解压后文件的存放路径
List list = null;
ZipInputStream in = null;
FileOutputStream os = null;
try {
in = new ZipInputStream(new FileInputStream(zipPath));
ZipEntry entry = null;
while ((entry = in.getNextEntry()) != null) {
String entryName = entry.getName();
if (entry.isDirectory()) {
File file = new File(serverPath + File.separator + entryName);
file.mkdirs();
} else {
os = new FileOutputStream(serverPath + File.separator + entryName);
int bytesRead = 0;
while ((bytesRead = in.read()) != -1) {
os.write(bytesRead);
}
}// 未取值
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
Log4J.logWarn(e.getMessage());
} catch (IOException e) {
// TODO Auto-generated catch block
Log4J.logWarn(e.getMessage());
}
return list;
}
JDK的解压的字符集只支持ISO-8859-1,所以说在解压的时候出现中文的地方会出现异常,可以采取先把文件转换成UUID的编码名称,当然这是没有业务需求的情况下!
2、利用ant解压文件
public static void releaseZipFileList(String zipPath, String serverPath)
throws Exception {
//zipPath为需要解压的zip文件
//serverPath为解压后文件的存放路径
ZipFile zipFile = new ZipFile(zipPath);
Enumeration e = zipFile.getEntries();
org.apache.tools.zip.ZipEntry zipEntry = null;
while (e.hasMoreElements()) {
zipEntry = (org.apache.tools.zip.ZipEntry) e.nextElement();
String entryName = zipEntry.getName();
String fileNames[] = entryName.split("/");//读取文件集合
int length = fileNames.length;
String path = serverPath;
for (int it = 0; it < length; it++) {
if (it < length - 1) {
path += fileNames[it] + "/";
new File(path).mkdir();
} else { // 读取最后的一个文件
if (entryName.endsWith("/")) { // 为目录,则创建文件夹
new File(serverPath + entryName).mkdir();
} else {
InputStream in = zipFile.getInputStream(zipEntry);
OutputStream os = new FileOutputStream(new File(
serverPath + entryName));
byte[] buf = new byte[1024];
int len;
while ((len = in.read(buf)) > 0) {
os.write(buf, 0, len);
}
in.close();
os.close();
}
}
}
}
zipFile.close();
}
利用ant挤压可以支持中文,但是效率不高,有需要的时候可以用,用到的类在ant包中
分享到:
相关推荐
总结来说,通过Java实现霍夫曼编码不仅可以加深对数据结构和算法的理解,还能够实际应用到文件压缩和解压缩的场景中。这个过程涉及到文件操作、数据结构(二叉树和优先队列)、编码和解码等多方面的知识,对于提升...
Huffman编码是一种高效的数据压缩算法,它基于字符频率构建最优的前缀树(也称为Huffman树),从而实现对文本文件的压缩。在Java中实现Huffman编码,我们需要理解其核心原理并熟悉Java编程语法。 1. **Huffman编码...
哈夫曼编码是一种高效的数据编码方法...在Java中,我们可以使用面向对象的方式设计数据结构和算法,结合文件操作类实现文件的压缩与解压缩。通过这个过程,我们可以有效地减小文本文件的存储空间,提高存储和传输效率。
- 读取压缩字符串,每次取出一个编码,根据编码在字典中找到对应的子串,并添加到解压后的字符串中。 - 更新字典,将新生成的子串(当前解压字符串+下一个编码对应的子串的第一个字符)添加到字典。 - 重复此过程...
哈弗曼编码是一种高效的数据压缩方法,由美国计算机科学家戴维·哈弗曼在1952年提出...通过理解以上知识点,我们可以设计并实现一个完整的哈弗曼压缩解压文件的Java程序,实现高效的数据压缩和还原,有效节省存储空间。
6. **文件I/O操作**:在实现文件的压缩和解压过程中,Java的File类、FileInputStream、FileOutputStream和BufferedInputStream/OutputStream等类用于进行文件的读写操作,确保数据能正确地在磁盘和内存之间传输。...
在本文中,我们将深入探讨哈夫曼编码的基本原理、实现过程以及如何在Java中进行压缩和解压。 一、哈夫曼编码原理 哈夫曼编码是建立在哈夫曼树基础上的一种变长编码方法。它通过构造一棵具有最小带权路径长度的...
利用svnkit操作svn,实现对版本修改文件的导出,可以导出多个版本,.java文件将会在本地取出.class文件,导出后压缩成压缩包,主要用于服务器上的资源更新,不需要开发人员去找到对应的.class文件或其他文件压缩然后...
Java zip压缩包查看程序,应用弹出文件选择框,选择ZIP格式的压缩文件,可以像Winrar软件一样查看压缩文件内部的文件及文件夹,源码截图如上所示。 Java 数字签名、数字证书生成源码 2个目标文件 摘要:JAVA源码,...
Java zip压缩包查看程序,应用弹出文件选择框,选择ZIP格式的压缩文件,可以像Winrar软件一样查看压缩文件内部的文件及文件夹,源码截图如上所示。 Java 数字签名、数字证书生成源码 2个目标文件 摘要:JAVA源码...
Java zip压缩包查看程序,应用弹出文件选择框,选择ZIP格式的压缩文件,可以像Winrar软件一样查看压缩文件内部的文件及文件夹,源码截图如上所示。 Java 数字签名、数字证书生成源码 2个目标文件 摘要:JAVA源码...
4. **文件压缩**:在`Encode.java`中,读取原始文件,统计每个字符的频率,构建哈夫曼树并生成编码。然后,将文件内容转换为哈夫曼编码的位序列,写入到输出文件。同时,需要保存哈夫曼编码表,以便解压缩时使用。 ...
在Linux环境下,对这个文件进行操作是常见的任务。 首先,我们需要了解如何在Linux系统中处理这个压缩文件。`.tar.gz`文件是一种常见的归档格式,它结合了`.tar`(用于打包多个文件和目录)和`.gz`(Gzip,用于压缩...
在这个“Huffman文件加密解密Java实现”项目中,开发者提供了一个完整的Java程序,能够实现对文本文件进行Huffman编码和解码。以下是该项目可能涉及的关键知识点: 1. **Huffman树的构建**:首先,我们需要统计输入...
总的来说,这个"文件压缩项目"提供了一个实际应用哈夫曼编码的实例,可以帮助学习者深入理解数据压缩原理,并掌握Java编程中如何实现这一过程。通过分析和实践该项目,不仅可以提升编程技能,还能对文件压缩技术有更...
哈夫曼编码是一种高效的数据压缩方法,主要用于无损数据压缩,尤其在文本和图像压缩领域广泛应用。它基于一种称为哈夫曼树(Huffman ...通过实践项目,如“哈夫曼编码压缩解压.rar”所示,可以深入理解并提升这些技能。
Java zip压缩包查看程序源码 1个目标文件 摘要:Java源码,文件操作,压缩包查看 Java zip压缩包查看程序,应用弹出文件选择框,选择ZIP格式的压缩文件,可以像Winrar软件一样查看压缩文件内部的文件及文件夹,源码...
Java zip压缩包查看程序,应用弹出文件选择框,选择ZIP格式的压缩文件,可以像Winrar软件一样查看压缩文件内部的文件及文件夹,源码截图如上所示。 Java 数字签名、数字证书生成源码 2个目标文件 摘要:JAVA源码...
Java zip压缩包查看程序源码 1个目标文件 摘要:Java源码,文件操作,压缩包查看 Java zip压缩包查看程序,应用弹出文件选择框,选择ZIP格式的压缩文件,可以像Winrar软件一样查看压缩文件内部的文件及文件夹,源码...
总之,哈夫曼树在Java中实现的压缩工具涉及了数据结构、算法、位操作和文件处理等多个知识点,是学习和实践计算机科学基础的好例子。通过这个源代码,你可以加深对这些概念的理解,并提升编程能力。