package test;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
public class Unzip
{
public static void main(String[] args)
{
String zipFilePath = "D:\\zip\\csv.zip";
File zipFile = new File(zipFilePath);
String targetDirectoryPath = null;
// 当目标目录为空的时候将文件解压到文件所在目录。
String targetDirectory = targetDirectoryPath;
ZipInputStream zis = null;
if (targetDirectoryPath == null)
{
targetDirectory = zipFile.getParent() + System.getProperty("file.separator");
}
try
{
zis = new ZipInputStream(new FileInputStream(zipFilePath));
ZipEntry entry;
// 创建解压后的文件夹。
while ((entry = zis.getNextEntry()) != null)
{
if (!entry.isDirectory())
{
continue;
}
File directory = new File(targetDirectory, entry.getName());
if (!directory.exists())
{
if (!directory.mkdirs())
{
System.exit(0);
}
zis.closeEntry();
}
}
zis.close();
// 解压缩文件。
zis = new ZipInputStream(new FileInputStream(zipFilePath));
while (((entry = zis.getNextEntry()) != null))
{
if (entry.isDirectory())
{
continue;
}
File unzippedFile = new File(targetDirectory, entry.getName());
String filePath = unzippedFile.getPath();
if (filePath.endsWith("."))
{
String newPath = filePath.substring(0, filePath.length() - 1);
File dir = new File(newPath);
if (!dir.exists())
{
dir.mkdir();
}
continue;
}
if (!unzippedFile.exists())
{
unzippedFile.createNewFile();
}
FileOutputStream fout = new FileOutputStream(unzippedFile);
DataOutputStream dout = new DataOutputStream(fout);
byte[] b = new byte[1024];
int len = 0;
while ((len = zis.read(b)) != -1)
{
dout.write(b, 0, len);
}
dout.close();
fout.close();
zis.closeEntry();
}
}
catch (IOException e)
{
e.printStackTrace();
}
finally
{
try
{
if (zis != null)
{
zis.close();
}
//zipFile.delete();
}
catch (IOException e)
{
e.printStackTrace();
}
}
}
}
直接来段源码。
分享到:
相关推荐
以下是一个基本的Java代码示例,演示如何解压缩ZIP文件: ```java import java.io.*; import java.util.zip.*; public class UnzipExample { public static void unzip(String zipFilePath, String destDirectory...
在Java编程语言中,解压缩ZIP文件是一项常见的任务,特别是在处理数据传输、文件打包和部署等场景下。本文将深入探讨如何使用Java API来解压缩ZIP文件,包括基本概念、核心类库以及具体实现步骤。 ZIP文件是一种...
首先,我们需要了解Java中的`java.util.zip`包,这个包提供了处理压缩文件的基本工具。在ZIP格式的压缩包处理中,我们主要会用到`ZipInputStream`和`ZipEntry`这两个类。`ZipInputStream`是用于读取ZIP文件的输入流...
在Java编程语言中,文件的压缩与解压缩是常见的操作,尤其在数据传输、存储优化以及备份场景下显得尤为重要。...通过上述知识点,开发者能够有效地在Java环境中进行ZIP文件的压缩与解压缩操作,满足实际项目需求。
一、Java打包压缩ZIP Java中的`java.util.zip`包提供了对ZIP文件的支持。主要涉及到的类有`ZipOutputStream`和`ZipEntry`。`ZipOutputStream`是用于创建ZIP文件的输出流,而`ZipEntry`则代表ZIP文件中的一个条目...
本话题主要聚焦于如何利用ant.jar来解压缩ZIP包。首先,你需要确保你的项目中已经引入了ant.jar。这通常可以通过Maven或Gradle等构建工具添加依赖来实现。如果你的项目不使用这些工具,你可以将ant.jar作为库文件...
java语言操作解压缩文件。 /** * 数据压缩 * * @param data * @return * @throws Exception */ public static byte[] compress(byte[] data) throws Exception { ByteArrayInputStream bais = new ...
在Java编程环境中,解压缩ZIP或RAR格式的文件是一项常见的任务,这主要涉及到I/O流、文件操作以及压缩和解压缩库的使用。本篇将深入讲解如何在Java中实现这个功能,同时会介绍一些相关的工具和源码。 首先,对于ZIP...
Java工具类ZIP解压缩Java工具类ZIP解压缩Java工具类ZIP解压缩
最后,`生成zip包代码.txt`和`解压缩zip包.txt`文件可能包含了具体的实现代码,而`需要用的jar包`可能是指在某些情况下,如使用第三方库时,可能需要引入额外的依赖项。例如,如果使用了Apache Commons Compress库,...
博文链接:https://peng-jian-ming.iteye.com/blog/190572
本篇文章将深入探讨如何在Android平台上解决Java ZIP库在解压缩中文文件时出现的乱码问题。 首先,我们要明白乱码问题的根源。在文件的压缩和解压缩过程中,文件名通常被编码为字节序列,这个序列取决于原始文件名...
本篇文章将详细讲解如何使用Java来解压缩ZIP格式的压缩文件,特别是那些包含中文文件名的压缩包。我们将探讨相关API的使用,以及解决中文文件名在解压过程中可能出现的问题。 1. **Java的压缩与解压缩库**: Java...
### Java解压缩ZIP文件:深度解析与实践 #### 核心知识点概览: - **Java I/O与网络数据流统一接口**:Java的1.1版本提供了统一的接口来处理I/O数据流与网络数据流,这使得数据的压缩、传输和解压缩变得简单而高效...
JAVA文件压缩与解压缩实践(源代码).zipJAVA文件压缩与解压缩实践(源代码).zipJAVA文件压缩与解压缩实践(源代码).zipJAVA文件压缩与解压缩实践(源代码).zipJAVA文件压缩与解压缩实践(源代码).zipJAVA文件压缩与解压缩...
本篇文章将深入探讨如何使用Java API来实现ZIP文件的解压缩,并提供详细的注释帮助理解代码逻辑。 首先,我们需要了解Java中的`java.util.zip`包,这个包提供了处理压缩文件格式(如ZIP和GZIP)所需的所有类。其中...
在Java编程语言中,文件的压缩与解压缩是常见的数据处理操作,特别是在数据传输、存储优化和备份场景中。本实践项目围绕这个主题展开,包括源代码和相关的论文,为学习者提供了深入理解和应用Java压缩库的机会。以下...