package com.tw.file.util;
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.io.InputStream;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Enumeration;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
import java.util.zip.ZipOutputStream;
public class Zip2Utils {
/**
* @param args
*/
public static void main(String[] args) {
Collection<File> resFileList = new ArrayList<File>();
resFileList.add(new File("E:\\1.txt"));
resFileList.add(new File("E:\\2.txt"));
File zipFile = new File("e:\\txxxt.zip");
try {
Zip2Utils.zipFiles(resFileList, zipFile); //测试OK
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
private static final int BUFF_SIZE = 1024 * 1024; //1M Byte
/**
* 批量压缩文件(夹)
*
* @param resFileList 要压缩的文件(夹)列表
* @param zipFile 生成的压缩文件
* @throws IOException 当压缩过程出错时抛出
*/
public static void zipFiles(Collection<File> resFileList, File zipFile) throws IOException {
ZipOutputStream zipout = new ZipOutputStream(new BufferedOutputStream(new FileOutputStream(zipFile), BUFF_SIZE));
for (File resFile : resFileList) {
zipFile(resFile, zipout, "");
}
zipout.close();
}
/**
* 批量压缩文件(夹)
*
* @param resFileList 要压缩的文件(夹)列表
* @param zipFile 生成的压缩文件
* @param comment 压缩文件的注释
* @throws IOException 当压缩过程出错时抛出
*/
public static void zipFiles(Collection<File> resFileList, File zipFile, String comment) throws IOException {
ZipOutputStream zipout = new ZipOutputStream(new BufferedOutputStream(new FileOutputStream(zipFile), BUFF_SIZE));
for (File resFile : resFileList) {
zipFile(resFile, zipout, "");
}
zipout.setComment(comment);
zipout.close();
}
/**
* 解压缩一个文件
*
* @param zipFile 压缩文件
* @param folderPath 解压缩的目标目录
* @throws IOException 当压缩过程出错时抛出
*/
public static void upZipFile(File zipFile, String folderPath) throws IOException {
ZipFile zf = new ZipFile(zipFile);
for (Enumeration entries = zf.entries(); entries.hasMoreElements();) {
ZipEntry entry = ((ZipEntry) entries.nextElement());
InputStream in = zf.getInputStream(entry);
OutputStream out = new FileOutputStream(folderPath + File.separator + entry.getName());
byte buffer[] = new byte[BUFF_SIZE];
int realLength;
while ((realLength = in.read(buffer)) > 0) {
out.write(buffer, 0, realLength);
}
in.close();
out.close();
}
}
private static void zipFile(File resFile, ZipOutputStream zipout, String rootpath) throws IOException {
rootpath = rootpath + (rootpath.trim().length() == 0 ? "" : File.separator) + resFile.getName();
if (resFile.isDirectory()) {
File[] fileList = resFile.listFiles();
for (File file : fileList) {
zipFile(file, zipout, rootpath);
}
} else {
byte buffer[] = new byte[BUFF_SIZE];
BufferedInputStream in = new BufferedInputStream(new FileInputStream(resFile), BUFF_SIZE);
zipout.putNextEntry(new ZipEntry(rootpath));
int realLength;
while ((realLength = in.read(buffer)) != -1) {
zipout.write(buffer, 0, realLength);
}
in.close();
zipout.flush();
zipout.closeEntry();
}
}
}
分享到:
相关推荐
然后,可以使用命令行工具解压缩文件,例如使用`tar -zxvf eclipse-java-2023-09-R-linux-gtk-x86_64.tar.gz`命令。解压缩后,用户可以在终端中导航到解压后的目录,并通过运行`./eclipse`来启动Eclipse IDE。 在...
2. **解压文件**:打开终端,使用 `cd` 命令进入包含压缩文件的目录。然后,使用以下命令解压: ``` tar -zxvf java-8-openjdk-amd64.tar.gz ``` 这个命令中,`-z` 表示使用gzip解压,`-x` 表示解压,`-v` 提供...
eclipse-java-2023-12-R-win32-x86_64.zip 适用于Windows系统
2. 使用`cd`命令进入包含压缩文件的目录。 3. 输入`tar -zxvf eclipse-java-2022-06-R-linux-gtk-x86_64.tar.gz`,执行解压命令。 4. 解压完成后,会生成一个名为`eclipse`的目录,里面包含了Eclipse IDE的所有文件...
【压缩包子文件的文件名称列表】中的“eclipse”可能是指解压后的Eclipse安装目录,通常包含运行Eclipse所需的全部文件,如可执行文件(eclipse.exe)、工作空间配置、插件、库和其他必要组件。 关于Eclipse Java ...
【压缩包子文件的文件名称列表】"eclipse-java-2021-06_win64" 指的是该压缩包内的主程序文件,可能包含Eclipse IDE的可执行文件、库、插件和其他必要的配置文件,用于在Windows 64位系统上安装和运行Eclipse。...
MySQL Connector/J是MySQL数据库与Java应用程序之间的重要桥梁,它是一个实现了Java Database Connectivity (JDBC) API的驱动程序,使得Java开发者能够轻松地在Java应用中访问MySQL数据库。"mysql-connector-java-...
标题中的“eclipse-java-2022-03-R-linux-gtk-x86_64.tar.gz”指的是Eclipse IDE for Java开发者的特定版本,适用于2022年3月发布(R代表Release),针对Linux操作系统x86_64架构。这个压缩包采用的是tar.gz格式,是...
总之,DiffUtils-1.2.1.jar是一个强大的Java文件比较工具,能够帮助开发者有效地处理文本和自定义对象的差异。结合其源码,不仅可以直接在项目中使用,也能学习到关于文件比较算法和数据结构的相关知识,提升编程...
【压缩包子文件的文件名称列表】:java(QQ) 只有一个文件名“java(QQ)”给出,它可能是一个源代码文件、配置文件或者数据文件。根据命名,我们可以猜测这个文件包含了使用Java编写的与QQ有关的代码,可能是QQ登录...
4. **安装和运行**: 解压缩文件后,用户通常会找到一个名为"Eclipse"的可执行文件,双击运行即可启动Eclipse IDE。在首次启动时,用户需要配置工作空间,这是Eclipse保存项目和设置的地方。 5. **Eclipse插件生态**...
在实际使用中,用户需要先解压缩文件,然后运行“eclipse”程序启动Eclipse IDE。为了更好地利用Eclipse,用户还可以根据自己的需求安装额外的插件,比如支持其他语言(如Python或C++)、集成版本控制系统(如Git)...
标题 "eclipse-java-2020-06-R-win32-x86_64.rar" 提供的信息表明这是一个Eclipse IDE的特定版本,专为Java开发设计,适用于Windows 32位和64位操作系统。Eclipse是全球开发者广泛使用的开源集成开发环境(IDE),...
"java-8-openjdk-amd64.tar.gz"是一个压缩文件,采用gzip压缩格式,包含OpenJDK 8的AMD64版本的所有必要组件,如Java虚拟机(JVM)、Java类库和开发工具。 在Ubuntu 12.04(代号 Precise Pangolin)这样的Linux发行...
2. 解压:使用命令行工具(如`tar`)解压缩文件,通常命令是`tar -zxvf eclipse-java-linux-gtk-x86_64.tar.gz`。 3. 移动:将解压后的“eclipse”目录移动到你希望存放的应用程序目录,例如`/opt/eclipse`。 4. ...
Java编译器将源代码(.java文件)转换成字节码(.class文件),而Java虚拟机则负责执行这些字节码。JDK是开发和部署Java应用的必备环境。 标签“java编译器与jdk下载”表明这个压缩包可能包含了JDK的安装程序,这...
1. 下载压缩文件后,解压缩到一个合适的目录。 2. 双击运行eclipse.exe启动Eclipse IDE。 3. 首次启动时,可能需要设置工作空间,这是存储项目的地方。 4. 要安装JavaEE插件,可以通过菜单栏的“帮助”>“Eclipse ...
标题中的"jdk-1.7-java-7-openjdk-amd64.zip"表明这是一个Java开发工具包(JDK)的压缩文件,版本为1.7,适用于AMD64架构的Linux系统。OpenJDK是Java Development Kit的一个开源实现,由Oracle公司支持并维护。这个...
压缩包子文件的“eclipse”可能是解压后得到Eclipse IDE的根目录,包含启动脚本、配置文件、插件和工作区等必要组件。用户在解压后,通常需要按照指定的步骤配置环境变量和启动脚本,以便在aarch64架构的Linux系统上...