package com.wyebd.publicuse;
import java.io.*;
import java.util.zip.*;
public class FileZip {
/**
* 压缩一层目录下的所有文件或压缩单个文件
* @param filePath 要压缩的文件路径 (单个文件需含文件名)
* @param toFilePath 压缩后的文件路径 含文件名
* @param isDelete 是否删除原路径 true为删除 false为不删除
*/
public void zip(String filePath,String toFilePath,boolean isDelete){
File file=new File(filePath);
if(file.isDirectory()){//是否为文件目录,是为true
zipFiles(filePath,toFilePath);
if(isDelete){
String[] files=file.list();
for(int i=0;i<files.length;i++){
File f=new File(filePath+"//"+files[i]);
f.delete();
}
file.delete();
}
}else{
zipFile(filePath,toFilePath);
if(isDelete){
file.delete();
}
}
}
/**
* 压缩某路径的单个文件
* @param filePath 要压缩的文件的路径(含文件名 如:d://tt.txt)
* @param zipname 压缩后的路径(含压缩后文件名 如:d://tt.zip)
*/
private void zipFile (String filePath,String zipname){
FileOutputStream fos=null;
ZipOutputStream zipOut=null;
try {
fos = new FileOutputStream(zipname);//创建文件输出流(低级流)
zipOut = new ZipOutputStream(fos);//创建zip文件输出流
File f = new File(filePath);
FileInputStream fis = new FileInputStream(filePath);
ZipEntry ze = new ZipEntry(f.getName());
zipOut.putNextEntry(ze);
int c = 0;
while ((c = fis.read()) != -1) {
zipOut.write(c);
}
fis.close();
zipOut.close();
} catch (FileNotFoundException ex) {
ex.printStackTrace();
} catch (IOException ex) {
ex.printStackTrace();
}
}
/**
* 压缩某路径下所有文件
* @param filePath 要压缩的路径
* @param zipname 压缩后的路径(含压缩后文件名 如:d://tt.zip)
*/
private void zipFiles (String filePath,String zipname){
FileOutputStream fos=null;
ZipOutputStream zipOut=null;
String[] files=(new File(filePath)).list();
try {
fos = new FileOutputStream(zipname);//创建文件输出流(低级流)
zipOut = new ZipOutputStream(fos);//创建zip文件输出流
int i = 0;
for (i = 0; i < files.length; i++) {
File f = new File(files[i]);
FileInputStream fis = new FileInputStream(filePath+"//"+files[i]);
ZipEntry ze = new ZipEntry(f.getName());
zipOut.putNextEntry(ze);
int c = 0;
while ((c = fis.read()) != -1) {
zipOut.write(c);
}
fis.close();
}
zipOut.close();
} catch (FileNotFoundException ex) {
ex.printStackTrace();
} catch (IOException ex) {
ex.printStackTrace();
}
}
/**
* @param args
*/
public static void main(String[] args) {
fz.zip("e://ww","d://tt.zip",false);
// fz.zip("e://tt.txt","d://tt.zip",false);
} catch (Exception e) {
e.printStackTrace();
}
}
}
分享到:
相关推荐
在Java编程中,向现有的ZIP压缩包追加文件通常需要经过解压、修改、再压缩的步骤,因为标准的Java ZIP库(如`java.util.zip`包)并不直接支持追加到已存在的ZIP文件。本篇文章将深入探讨如何实现这个功能,主要关注...
最后,`生成zip包代码.txt`和`解压缩zip包.txt`文件可能包含了具体的实现代码,而`需要用的jar包`可能是指在某些情况下,如使用第三方库时,可能需要引入额外的依赖项。例如,如果使用了Apache Commons Compress库,...
* @param zipFile 指定的ZIP压缩文件 * @param dest 解压目录 * @param passwd ZIP文件的密码 * @return 解压后文件数组 * @throws ZipException 压缩文件有损坏或者解压缩失败抛出 */ 方法详细见文件! 一个...
前段时间由于项目需要,使用java生成PDF文件,然后将文件压缩成ZIP格式,同时对压缩文件进行加密,先将代码及jar包上传供大家参考,并希望大家共同完善和学习。 java生成PDF,java加密压缩文件并,java生成PDF后压缩...
在Java后台中,批量下载文件压缩成zip下载可以使用Java的文件输入输出流和zip压缩流来实现。首先,需要在Servlet中获取文件列表,然后使用循环将文件一个个添加到zip文件中,最后下载zip文件到本地桌面。 java批量...
在Java编程环境中,生成压缩文件,如`.jar`或`.zip`,是常见的需求,尤其在打包和分发应用程序时。下面将详细讲解如何使用Java来创建`.jar`和`.zip`格式的压缩文件。 首先,`.jar`文件是Java档案(Java Archive)...
// 设置压缩文件入口entry,为被读取的文件创建压缩条目 File tempFile = new File(fileArray[i].toString()); String rootStr = file.getPath(); String entryStr = null; // entry以相对路径的...
在这个场景中,我们关注的是如何使用Java来实现文件压缩包的上传以及在服务器上的解压缩。Java作为一种强大的编程语言,提供了丰富的库来支持这样的操作,特别是在涉及到SFTP(Secure File Transfer Protocol)时,...
这个库简化了在Java中处理压缩文件的过程,提供了丰富的API供开发者使用。 首先,我们来看`FileUtils.java`中的主要方法。通常,这个类会包含两个核心功能:`zipFiles()`用于创建ZIP包,`unzipFile()`用于解压ZIP包...
在Java编程环境中,处理压缩和解压缩文件是一项常见的任务,特别是在数据传输、文件备份或存储优化等场景。本文将深入探讨如何使用`zip4j`库来实现带密码的ZIP文件压缩与解压缩,该库支持中文文件名,并且具有良好的...
前段时间由于项目需要,使用java生成PDF文件,然后将文件压缩成ZIP格式,同时对压缩文件进行加密,先将代码及jar包上传供大家参考,并希望大家共同完善和学习。 java生成PDF,java加密压缩文件并,java生成PDF后压缩...
总之,`ZipCompressor.java`是实现文件和文件夹压缩的关键类,它利用了Java标准库提供的`ZipOutputStream`和`ZipEntry`,通过一系列的步骤,将原始文件和目录打包成ZIP格式的压缩文件。熟悉这些概念和API,开发者就...
在本案例中,"java POI生成word.zip"是一个压缩包,包含使用Java POI库生成Word文档的示例代码。以下是基于这个主题的相关知识点: 1. **Java POI库介绍** - Java POI 是一套API,用于处理Microsoft Office格式的...
ZIP是一种流行的文件格式,用于将一个或多个文件打包成一个单一的压缩文件,以节省存储空间和提高传输效率。在Java中,我们可以使用`java.util.zip`包中的`ZipOutputStream`和`ZipEntry`类来实现文件的压缩。以下是...
- **`ZipOutputStream`**:用于创建 ZIP 格式的压缩文件。 - **构造方法**: - `public ZipOutputStream(OutputStream out)`: 构造一个指向指定 `OutputStream` 的 `ZipOutputStream` 对象。 - **常用方法**: -...
要在Java中处理RAR格式的压缩文件,由于Java标准库不直接支持RAR格式,我们需要引入第三方库。一个常用的库是`com.igormaznitsa:nativesharp-jni`,它封装了WinRAR的API,使得Java可以调用WinRAR的功能。安装该库后...
Java生成PDF文件是一种常见的技术需求,特别是在开发报告生成、电子发票、文档自动化等领域。PDF(Portable Document Format)格式因其跨平台、保持原始样式的特点而被广泛使用。在Java环境中,有多个库可以帮助...
zip,然后下载删除源文件与压缩文件。 3、可以指定文件都为最后生成为zip文件下载,且删除源文件。 1、压缩文件或者目录(只是压缩不删除):zipFileOrDirectory 2、程序自动判断如果是文件那么就是源文件下载,...
分步生成csv,获取数据第一行生成文件标题,同时生成第一行数据,返回标题名称。 将多csv文件压缩成zip,之后删除原csv文件