`
朱嘉华
  • 浏览: 238323 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

用java原生api写解压缩

    博客分类:
  • java
阅读更多

package com.unis.io;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
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 UnZipUtil {

	private static int BUFFER_SIZE = 2048;
	private static byte[] BUFFER_DATA = new byte[BUFFER_SIZE];

	/**
	 * 
	 * @param src
	 *            源文件
	 * @param dest
	 *            目标目录
	 * @throws IOException
	 */
	public static void unZip(String src, String dest) throws IOException {
		ZipInputStream zis = null;
		BufferedOutputStream bos = null;
		ZipEntry zn = null;
		// 这里可以判断是否是压缩文件,如果不是抛出自定义异常
		try {
			zis = new ZipInputStream(new BufferedInputStream(
					new FileInputStream(new File(src))));
			while ((zn = zis.getNextEntry()) != null) {
				if (zn.isDirectory()) {
					// 如果条目是目录,并且该目录不存在,创建该目录
					File dir = new File(dest + File.separator + zn.getName());
					if (!dir.exists())
						dir.mkdirs();
				} else {
					// 如果条目是文件(如果父路径不存在,就创建父路径),将条目从zip流中读出,并写出文件输出流
					File f = new File(dest + File.separator + zn.getName());
					File dir = f.getParentFile();
					if (!dir.exists())
						dir.mkdirs();
					bos = new BufferedOutputStream(new FileOutputStream(f));
					int i = 0;
					while ((i = zis.read(BUFFER_DATA)) != -1) {
						bos.write(BUFFER_DATA, 0, i);
					}
				}
			}
		} finally {
			if (bos != null)
				bos.close();
			if (zis != null)
				zis.close();

		}

	}

	public static void main(String[] args) {
		try {
			unZip("E:/java/a.zip", "E:/sql");
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

}

<script type="text/javascript"></script><script src="http://a.alimama.cn/inf.js" type="text/javascript"></script>
分享到:
评论

相关推荐

    Java压缩技术(三) ZIP解压缩——Java原生实现

    在实际开发中,除了Java原生API,还有一些第三方库如Apache Commons Compress和Google的Guava库提供了更高级别的抽象和便利的API,使得处理压缩文件变得更加简单。 总的来说,理解和掌握Java中的ZIP压缩技术,不仅...

    7z解压缩java代码+工具

    本主题聚焦于“7z解压缩java代码+工具”,它涉及到使用Java编程语言实现对7z、tar、gz等压缩格式的支持。下面我们将深入探讨相关知识点。 首先,7z是一种高效的压缩格式,由7-Zip软件创建,它提供了比常见的ZIP或...

    TTools-master_java压缩与解压_

    - 高级API:`TTools-master`可能封装了上述的原生API,提供了更简洁的接口,如`compressFileToZip(String srcFilePath, String destZipPath)`和`unzipFile(String zipFilePath, String destDirPath)`。 - 错误处理...

    安卓文件下载上传解压相关-android平台的7z压缩与解压缩.rar

    在Android平台上,处理文件下载、上传以及压缩与解压缩是常见的任务。7z是一种高效的压缩格式,具有较高的压缩率和良好的兼容性。本资源“安卓文件下载上传解压相关-android平台的7z压缩与解压缩.rar”可能包含了...

    java开源包8

    WebSocket4J 是一个用 Java 实现的 WebSocket 协议的类库,可使用 Java 来构建交互式 Web 应用。WebSocket4J 并未实现客户端通讯协议,所以不能用它来连接 WebSocket 服务器。 Struts验证码插件 JCaptcha4Struts2 ...

    java开源包4

    WebSocket4J 是一个用 Java 实现的 WebSocket 协议的类库,可使用 Java 来构建交互式 Web 应用。WebSocket4J 并未实现客户端通讯协议,所以不能用它来连接 WebSocket 服务器。 Struts验证码插件 JCaptcha4Struts2 ...

    java开源包6

    WebSocket4J 是一个用 Java 实现的 WebSocket 协议的类库,可使用 Java 来构建交互式 Web 应用。WebSocket4J 并未实现客户端通讯协议,所以不能用它来连接 WebSocket 服务器。 Struts验证码插件 JCaptcha4Struts2 ...

    java开源包101

    WebSocket4J 是一个用 Java 实现的 WebSocket 协议的类库,可使用 Java 来构建交互式 Web 应用。WebSocket4J 并未实现客户端通讯协议,所以不能用它来连接 WebSocket 服务器。 Struts验证码插件 JCaptcha4Struts2 ...

    java开源包9

    WebSocket4J 是一个用 Java 实现的 WebSocket 协议的类库,可使用 Java 来构建交互式 Web 应用。WebSocket4J 并未实现客户端通讯协议,所以不能用它来连接 WebSocket 服务器。 Struts验证码插件 JCaptcha4Struts2 ...

    java开源包5

    WebSocket4J 是一个用 Java 实现的 WebSocket 协议的类库,可使用 Java 来构建交互式 Web 应用。WebSocket4J 并未实现客户端通讯协议,所以不能用它来连接 WebSocket 服务器。 Struts验证码插件 JCaptcha4Struts2 ...

    java开源包10

    WebSocket4J 是一个用 Java 实现的 WebSocket 协议的类库,可使用 Java 来构建交互式 Web 应用。WebSocket4J 并未实现客户端通讯协议,所以不能用它来连接 WebSocket 服务器。 Struts验证码插件 JCaptcha4Struts2 ...

    vox播放器java实现

    总的来说,虽然Java原生不直接支持Vox格式,但通过Java Sound API和自定义解码逻辑,我们可以实现Vox文件的播放。如果你在处理过程中遇到困难,可以参考开源社区的代码示例或者寻求专业的开发工具帮助。记住,编程...

    java开源包1

    WebSocket4J 是一个用 Java 实现的 WebSocket 协议的类库,可使用 Java 来构建交互式 Web 应用。WebSocket4J 并未实现客户端通讯协议,所以不能用它来连接 WebSocket 服务器。 Struts验证码插件 JCaptcha4Struts2 ...

    java开源包3

    WebSocket4J 是一个用 Java 实现的 WebSocket 协议的类库,可使用 Java 来构建交互式 Web 应用。WebSocket4J 并未实现客户端通讯协议,所以不能用它来连接 WebSocket 服务器。 Struts验证码插件 JCaptcha4Struts2 ...

    JAVA上百实例源码以及开源项目源代码

    Java数据压缩与传输实例 1个目标文件 摘要:Java源码,文件操作,数据压缩,文件传输 Java数据压缩与传输实例,可以学习一下实例化套按字、得到文件输入流、压缩输入流、文件输出流、实例化缓冲区、写入数据到文件、...

    Java资源包01

    WebSocket4J 是一个用 Java 实现的 WebSocket 协议的类库,可使用 Java 来构建交互式 Web 应用。WebSocket4J 并未实现客户端通讯协议,所以不能用它来连接 WebSocket 服务器。 Struts验证码插件 JCaptcha4Struts2 ...

    javacv244jar包及本机库

    1. **解压**: 解压缩文件,将所有jar文件提取到一个可访问的目录,通常是你的项目类路径或Java的lib目录。 2. **导入jar包**: 在你的Java项目中,你需要把这些jar文件添加到项目的类路径中。如果你使用的是Eclipse...

    java播放器(纯java解码)

    解码过程涉及到音频数据的解压缩和转换,以适应Java音频API可以处理的格式。 为了实现播放功能,Java播放器还需要包含一个播放引擎,它负责控制音频的播放、暂停、停止、快进、后退等操作。此外,可能还需要实现...

    java16.0.1 linux.zip

    2. 使用`unzip java16.0.1_linux.zip`命令解压缩文件。 3. 将解压后的目录移动到一个合适的位置,比如`/usr/lib/jvm`。 4. 更新`JAVA_HOME`环境变量,如`export JAVA_HOME=/usr/lib/jvm/java-16.0.1`。 5. 将bin目录...

    java开源包2

    WebSocket4J 是一个用 Java 实现的 WebSocket 协议的类库,可使用 Java 来构建交互式 Web 应用。WebSocket4J 并未实现客户端通讯协议,所以不能用它来连接 WebSocket 服务器。 Struts验证码插件 JCaptcha4Struts2 ...

Global site tag (gtag.js) - Google Analytics