`
tw5566
  • 浏览: 460913 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

java对文件的操作(一) --------文件解压缩

    博客分类:
  • java
阅读更多
package com.tw.file.util;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.zip.ZipEntry;
import java.util.zip.ZipException;
import java.util.zip.ZipFile;
import java.util.zip.ZipInputStream;

/**
 * 文件解压缩类
 * @author tw5566
 *
 */
public class ZipUtils {
	private static final String tt="";

	/**
	 * 主方法
	 * @param arg
	 * @throws Exception
	 */
	public static void main(String arg[])throws Exception{
		ZipUtils.unZip_java("F:/POIDemo/uedit32c.zip");//测试OK

	}
	
	/**
	 * <p>文件解缩方法2 java本身自带的解压包。
	 * 只会解压到当前目录下。</p>
	 * @param zipFileName  要解压文件的全路径 
	 */    
    public static void unZip_java(String zipFileName){
		File infile = new File(zipFileName);

		try {
			// 检查是否是ZIP文件
			ZipFile zip = new ZipFile(infile);
			zip.close();

			// 建立与目标文件的输入连接
			ZipInputStream in = new ZipInputStream(new FileInputStream(infile));
			ZipEntry file = in.getNextEntry();

			int i = infile.getAbsolutePath().lastIndexOf('.');
			String dirname = new String();
			if (i != -1)
				dirname = infile.getAbsolutePath().substring(0, i);
			else
				dirname = infile.getAbsolutePath();
			
			File newdir = new File(dirname);
			newdir.mkdir();

			byte[] c = new byte[1024];
			int len;
			int slen;

			while (file != null) {
				i = make8859toGB(file.getName()).replace('/', '\\').lastIndexOf('\\');
				if (i != -1) {
					File dirs = new File(dirname
							+ File.separator
							+ make8859toGB(file.getName()).replace('/', '\\')
									.substring(0, i));
					dirs.mkdirs();
					dirs = null;
				}

				System.out.print("Extract "
						+ make8859toGB(file.getName()).replace('/', '\\')
						+ " ........ ");

				if (file.isDirectory()) {
					File dirs = new File(make8859toGB(file.getName()).replace(
							'/', '\\'));
					dirs.mkdir();
					dirs = null;
				} else {
					FileOutputStream out = new FileOutputStream(dirname
							+ File.separator
							+ make8859toGB(file.getName()).replace('/', '\\'));
					while ((slen = in.read(c, 0, c.length)) != -1)
						out.write(c, 0, slen);
					out.close();
				}
				System.out.print("O.K.\n");
				file = in.getNextEntry();
			}
			in.close();
		} catch (ZipException zipe) {
			System.out.println(infile.getName() + "不是一个ZIP文件!");
		} catch (IOException ioe) {
			System.out.println("读取文件时错误!");
		} catch (Exception i) {
			System.out.println("over");
		}
		
    }

	public static String make8859toGB(String str) {
		try {
			String str8859 = new String(str.getBytes("8859_1"), "GB2312");
			return str8859;
		} catch (UnsupportedEncodingException ioe) {
			return str;
		}
	}
	
}
分享到:
评论

相关推荐

    eclipse-java-2023-09-R-linux-gtk-x86-64.tar.gz

    然后,可以使用命令行工具解压缩文件,例如使用`tar -zxvf eclipse-java-2023-09-R-linux-gtk-x86_64.tar.gz`命令。解压缩后,用户可以在终端中导航到解压后的目录,并通过运行`./eclipse`来启动Eclipse IDE。 在...

    eclipse-java-2023-09-R-win32-x86-64.zip

    4. **安装和运行**: 解压缩文件后,用户通常会找到一个名为"Eclipse"的可执行文件,双击运行即可启动Eclipse IDE。在首次启动时,用户需要配置工作空间,这是Eclipse保存项目和设置的地方。 5. **Eclipse插件生态**...

    java-jlha.zip-用于解、压缩lzh格式文件

    Java-JLHA是一款用于处理LZH格式压缩文件的开源库,其主要功能是实现LZH文件的解压缩。源码包中的"import jp.gr.java_conf.dangan"指示该代码库可能源自日本的Dangan项目,这通常意味着它遵循日本开发者的编程习惯和...

    使用Java API进行tar.gz文件及文件夹压缩解压缩.docx

    ame()); tOut.putArchiveEntry(tarEntry);...通过引入该库,我们可以轻松地在 Java 程序中实现文件和文件夹的压缩与解压缩功能。在实际开发中,注意错误处理、资源管理以及安全性等方面,以确保程序的健壮性和安全性。

    eclipse-java-2021-09-R-win32-x86_64.zip

    在实际使用中,用户需要先解压缩文件,然后运行“eclipse”程序启动Eclipse IDE。为了更好地利用Eclipse,用户还可以根据自己的需求安装额外的插件,比如支持其他语言(如Python或C++)、集成版本控制系统(如Git)...

    java-7-openjdk-amd64.tar.gz

    1. 解压缩文件:`tar -zxvf java-7-openjdk-amd64.tar.gz` 2. 进入解压后的目录:`cd java-7-openjdk-amd64` 3. 配置并编译源代码:`./configure && make` 4. 安装编译后的JDK:`sudo make install` 安装完成后,...

    eclipse-java-2020-06-R-win32-x86_64.rar

    标题 "eclipse-java-2020-06-R-win32-x86_64.rar" 提供的信息表明这是一个Eclipse IDE的特定版本,专为Java开发设计,适用于Windows 32位和64位操作系统。Eclipse是全球开发者广泛使用的开源集成开发环境(IDE),...

    eclipse-java-linux-gtk-x86_64.tar.gz

    2. 解压:使用命令行工具(如`tar`)解压缩文件,通常命令是`tar -zxvf eclipse-java-linux-gtk-x86_64.tar.gz`。 3. 移动:将解压后的“eclipse”目录移动到你希望存放的应用程序目录,例如`/opt/eclipse`。 4. ...

    java文件解压缩工具箱及案例

    本主题将深入探讨如何使用Java来创建一个文件解压缩工具箱,特别关注支持ZIP和RAR格式,并解决中文乱码问题。首先,我们需要了解两个核心库:`java-unrar-1.7.0-1.jar` 和 `ant-1.8.2.jar`。 `java-unrar-1.7.0-1....

    eclipse-java-2020-06-R-win32-x86_64.zip

    1. 下载压缩文件后,解压缩到一个合适的目录。 2. 双击运行eclipse.exe启动Eclipse IDE。 3. 首次启动时,可能需要设置工作空间,这是存储项目的地方。 4. 要安装JavaEE插件,可以通过菜单栏的“帮助”&gt;“Eclipse ...

    mysql-connector-java-commercial-5.1.30-bin.jar

    解压缩mysql-connector-java-5.1.30.zip 将要使用的是mysql-connector-java-5.1.30-bin-g.jar和mysql-connector-java-5.1.30-bin.jar 配置 在C:\Program Files\Java目录下建立mysqlforjdbc子目录,进入该目录将...

    文件压缩解压缩

    在IT行业中,文件压缩与解压缩是日常工作中常见的操作,特别是在数据传输、存储优化和软件分发等领域。这里我们主要探讨的是一个简单的工具类,它支持zip、rar、tar等多种格式的压缩和解压缩功能,并且经过实际测试...

    Lzma压缩文件算法-java单文件版

    Lzma压缩文件算法-java单文件版,编译直接通过,压缩率极高

    javaweb毕业设计-JAVA文件压缩与解压缩实践(源代码+lw)(可做课程设计).rar

    javaweb毕业设计-JAVA文件压缩与解压缩实践(源代码+lw)(可做课程设计).rarjavaweb毕业设计-JAVA文件压缩与解压缩实践(源代码+lw)(可做课程设计).rarjavaweb毕业设计-JAVA文件压缩与解压缩实践(源代码+lw)(可做课程...

    eclipse-java-2019-03-R-win32-x86_64.zip

    用户只需解压缩文件,然后按照安装指南运行Eclipse可执行文件,即可开始使用。 总之,Eclipse Java 2019-03-R-win32-x86_64是一个适合Windows 32位系统的强大开发工具,由于其易用性、灵活性和强大的功能,被许多...

    eclipse-java-oxygen-1a-linux-gtk-x86_64.tar.gz

    要安装这个Eclipse版本,用户首先需要解压缩“eclipse-java-oxygen-1a-linux-gtk-x86_64.tar.gz”文件,通常可以使用Linux终端的“tar -zxvf 文件名”命令。解压后,会得到一个Eclipse目录,然后可以将这个目录移动...

    哈夫曼编码实现压缩解压缩java

    哈夫曼编码是一种高效的数据编码方法...在Java中,我们可以使用面向对象的方式设计数据结构和算法,结合文件操作类实现文件的压缩与解压缩。通过这个过程,我们可以有效地减小文本文件的存储空间,提高存储和传输效率。

    eclipse-java-2019-09-R-win32-x86_64.zip

    6. **安装与使用**: 用户需要先解压缩文件,然后双击“eclipse.exe”来启动Eclipse。在首次运行时,用户可以设置工作空间,这是保存项目和配置信息的位置。Eclipse还支持通过Marketplace或本地安装插件来扩展其功能...

    Java带密码解压缩RAR压缩包(内附代码)

    首先,我们需要一个库来处理RAR格式,因为Java标准库并不直接支持RAR解压缩。在这种情况下,我们可以使用`java-unrar`库,这是一个基于GNU Crypto的Java RAR工具包。文件名`java-unrar_gnu-crypto`可能就是这个库的...

    java 解压,压缩linux GZ压缩文件

    GZ是一种常用的文件压缩格式,它利用了gzip程序进行压缩,而在Java中,我们可以使用`java.util.zip`包中的类来实现对GZ文件的压缩和解压缩操作。 在给出的代码中,有两个主要的方法:`testGzipOutput()`用于解压GZ...

Global site tag (gtag.js) - Google Analytics