上一篇文章讲解了如何生成excel文件,name这一章我们来谈谈如何将多个excel文件打包成压缩包的形式
首先看一下主函数:
public static void main(String[] args) throws IOException {
try {
File file1 = new File("students1.xls");
File file2 = new File("students2.xls");
File file3 = new File("students3.xls");
//创建三个文件,放入list中
ArrayList list = new ArrayList();
list.add(file1);
list.add(file2);
list.add(file3);
//创建临时压缩包
File file = new File("e:/certpics.rar");
//创建文件输入输出流
FileOutputStream fous = new FileOutputStream(file);
/**打包的方法我们会用到ZipOutputStream这样一个输出流*/
ZipOutputStream zipOut= new ZipOutputStream(fous);
//进入打包方法
zipFile(list, zipOut);
zipOut.close();
fous.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
主函数里面包含一个zipFile()的方法,接下来展示给大家:
/**
* 把接受的全部文件打成压缩包
*/
@SuppressWarnings("rawtypes")
public static void zipFile(List files,ZipOutputStream outputStream) {
int size = files.size();
for(int i = 0; i < size; i++) {
File file = (File) files.get(i);
zipFile(file, outputStream);
}
}
上面的函数里面存在一个zipFile()的函数,注意啊,这个是方法的参数可是不同的啊。
/**
* 根据输入的文件与输出流对文件进行打包
* @param File
* @param org.apache.tools.zip.ZipOutputStream
*/
public static void zipFile(File inputFile,ZipOutputStream ouputStream) {
System.out.println(inputFile.getName());
try {
ZipEntry entry1 = new ZipEntry(inputFile.getName());
ouputStream.putNextEntry(entry1);
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
运行之后你就可以去你的e盘下面找到这个叫certpics.rar的压缩包了。