1. 程式人生 > >將多個excel表格打包成一個壓縮包檔案

將多個excel表格打包成一個壓縮包檔案

上一篇文章講解了如何生成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的壓縮包了。