import java.io.*;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.zip.ZipOutputStream;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
public class ZipUtil {
private static final Log log = LogFactory.getLog(ZipUtil.class);
public static void craeteZipPath(String path) throws IOException{
File zipFile = new File(path+new SimpleDateFormat("yyyyMMddHHmmss").format(new Date())+".zip");
File[] files = new File(path).listFiles();
List<File> srcfile=new ArrayList<File>();
if(files!=null && files.length > 0){
System.out.println("----------------"+files.length) ;
for(File excelFile:files){
srcfile.add(excelFile) ;
}
ZipUtil.zipFiles(srcfile, zipFile);
}
}
/**
* 压缩文件
*
* @param srcfile File[] 需要压缩的文件列表
* @param zipfile File 压缩后的文件
*/
public static void zipFiles(List<File> srcfile, File zipfile) {
byte[] buf = new byte[1024];
try {
// Create the ZIP file
ZipOutputStream out = new ZipOutputStream(new FileOutputStream(zipfile));
// Compress the files
for (int i = 0; i < srcfile.size(); i++) {
File file = srcfile.get(i);
FileInputStream in = new FileInputStream(file);
// Add ZIP entry to output stream.
out.putNextEntry(new ZipEntry(file.getName()));
// Transfer bytes from the file to the ZIP file
int len;
while ((len = in.read(buf)) > 0) {
out.write(buf, 0, len);
}
// Complete the entry
out.closeEntry();
in.close();
}
// Complete the ZIP file
out.close();
} catch (IOException e) {
log.error("ZipUtil zipFiles exception:"+e);
}
}
/**
* 解压缩
*
* @param zipfile File 需要解压缩的文件
* @param descDir String 解压后的目标目录
*/
public static void unZipFiles(File zipfile, String descDir) {
try {
// Open the ZIP file
ZipFile zf = new ZipFile(zipfile);
for (Enumeration entries = zf.entries(); entries.hasMoreElements();) {
// Get the entry name
ZipEntry entry = ((ZipEntry) entries.nextElement());
String zipEntryName = entry.getName();
InputStream in = zf.getInputStream(entry);
// System.out.println(zipEntryName);
OutputStream out = new FileOutputStream(descDir + zipEntryName);
byte[] buf1 = new byte[1024];
int len;
while ((len = in.read(buf1)) > 0) {
out.write(buf1, 0, len);
}
// Close the file and stream
in.close();
out.close();
}
} catch (IOException e) {
log.error("ZipUtil unZipFiles exception:"+e);
}
}
/**
* Main
*
* @param args
*/
public static void main(String[] args) {
try {
// List<File> srcfile=new ArrayList<File>();
//// srcfile.add(new File("D:\\data\\146_5186_201407.csv"));
// srcfile.add(new File("D:\\data\\146_5186_201408.csv"));
// srcfile.add(new File("D:\\data\\146_5186_201409.csv"));
//// srcfile.add(new File("D:\\data\\146_5186_201410.csv"));
//// srcfile.add(new File("D:\\data\\146_5186_201411.csv"));
// File zipfile = new File("D:\\data\\demo1.zip");
// ZipUtil.zipFiles(srcfile, zipfile);
ZipUtil.craeteZipPath("D:\\data\\server\\demo1") ;
} catch (IOException e) {
e.printStackTrace();
}
}
}
相关推荐
"多个Excel导出压缩成zip文件"的场景通常是为了解决数据量过大导致的文件管理不便、传输效率低以及存储空间占用过多等问题。下面我们将深入探讨这个话题,主要涵盖以下几个方面: 1. **大数据量导出**: - 当数据...
综上所述,"生成excel并打包成zip文件"这个任务涉及到使用Java编程语言,特别是Apache POI库来生成Excel文件,再结合Java标准库的压缩功能将Excel和文本文件打包成ZIP。整个过程涉及到了文件的创建、写入、压缩和...
在Java编程环境中,实现“将数据导入多个Excel并压缩”的功能是一项常见的任务,特别是在处理大量数据的业务场景中。这个需求通常涉及到数据处理、文件操作和压缩技术。下面,我们将详细探讨实现这一功能的关键知识...
Java后台批量下载文件并压缩成zip下载的方法 Java后台批量下载文件并压缩成zip下载的方法是指在Java后台中批量下载文件,并将其压缩成zip文件下载到本地桌面。该方法具有重要的参考价值,感兴趣的小伙伴们可以参考...
例如,如果你想要将多个sheet页的数据合并到单个数据帧中,你可以使用`pd.concat`函数,它接受一个包含所有sheet数据的字典,并返回一个合并后的DataFrame。如果你需要将处理过的数据导出为单个PDF文件,可能需要...
将这两个目录一起打包成zip文件,即得到"使用POI实现表格导出jar包.zip"。 使用这个jar包时,只需通过Java的`java -jar`命令执行,即可在指定位置生成Excel文件。需要注意的是,由于jar文件包含所有依赖,所以它的...
CSV文件的基本结构是每行由一个或多个字段组成,字段之间用逗号分隔。在JavaCSV库中,主要有两个核心类:`CSVReader`和`CSVWriter`。`CSVReader`用于读取CSV文件,而`CSVWriter`则用于将数据写入CSV文件。 1. CSV...
在实际应用中,这个过程可能会更复杂,因为可能需要处理多个图表、动态数据以及复杂的样式。同时,需要注意的是,直接操作XML可能会破坏文档的结构,因此在修改时要格外小心。Apache POI库提供了丰富的API,虽然可能...
综上所述,"Spire.Pdf_4.11.1.zip"是一个强大的Java PDF处理工具包,它涵盖了PDF处理的多个方面,是开发人员在Java环境下处理PDF文档的理想选择。无论是在企业级应用还是个人项目中,都能发挥出其高效、全面的功能。
综上所述,这个压缩包包含了一系列用于Java开发的库,涵盖了报表生成、XML处理、对象到XML映射、Office文档操作、PDF处理以及项目构建等多个方面。这些库对于进行企业级Java应用开发,特别是处理数据转换和报表生成...
多个数据进行对比这是非常常见的需求,Highcharts 可以让你为每个类型的数据添加坐标轴,每个轴可以定义放置的位置,所有的设置都可以独立生效,包括旋转、样式设计和定位,当然也支持多个数据共用一个坐标轴。...
6. 数据导出:支持将评价结果导出为Excel或其他格式,便于打印或进一步分析。 该系统可能采用SpringBoot作为基础开发环境,SpringBoot简化了SSM的配置,提供了一种快速开发独立应用的方式,集成了各种常用组件,如...
同时,还可以导出为Excel等格式,便于数据共享和处理。 三、数据库设计 系统的核心是数据库,通常采用关系型数据库如Access或SQL Server来存储学生信息。数据库设计应遵循规范化原则,减少数据冗余,提高数据一致...
如果有多引导系统的计算机,必须保证是在包含 Windows 的驱动器上使用该命令。 Diskpart 创建和删除硬盘驱动器上的分区。diskpart 命令仅在使用故障恢复控制台时才可用。 diskpart [ /add |/delete] [device_...