递归添加到邮政编码
//package com.nowjava; import java.io.BufferedInputStream; import java.io.BufferedOutputStream;/*来 自 时 代 J a v a - nowjava.com*/ import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.util.zip.ZipEntry; import java.util.zip.ZipOutputStream; public class Main { public static void recursiveAddToZip(File source, File zipFile,// from 时代Java公众号 String pathInZip) throws IOException { recursiveAddToZip(new File[] { source }, zipFile, pathInZip); } public static void recursiveAddToZip(File[] files, File zipFile, String pathInZip) throws IOException { FileOutputStream fOut = null; ZipOutputStream zipOut = null; try { fOut = new FileOutputStream(zipFile); zipOut = new ZipOutputStream(fOut); for (File f : files) { recursiveAddToZip(f, zipOut, pathInZip); } } finally { if (zipOut != null) zipOut.close(); else if (fOut != null) fOut.close(); } } private static void recursiveAddToZip(File source, ZipOutputStream zipOut, String pathInZip) throws IOException { if (source.isDirectory()) { if (pathInZip.equals("")) pathInZip = source.getName(); else pathInZip = pathInZip + "/" + source.getName(); // System.out.println("Recursing into " + source + " with path " + pathInZip); // Recurse for (File f : source.listFiles()) { recursiveAddToZip(f, zipOut, pathInZip); } } else if (source.isFile()) { // System.out.println("Adding " + source.toString() + " to " + // zipFile.toString()); addToZip(zipOut, source, pathInZip); } } public static void addToZip(File zipFile, File source, String pathInZip) throws IOException { addToZip(zipFile, new File[] { source }, pathInZip); } /** * Adds the given file to the given zip file. * @param zipFile the zip file to add to * @param files file to add */ public static void addToZip(File zipFile, File[] files, String pathInZip) throws IOException { FileOutputStream fOut = null; ZipOutputStream zipOut = null; try { fOut = new FileOutputStream(zipFile); zipOut = new ZipOutputStream(fOut); for (File f : files) { addToZip(zipOut, f, pathInZip); } } finally { if (zipOut != null) zipOut.close(); else if (fOut != null) fOut.close(); } } private static void addToZip(ZipOutputStream zipOut, File source, String pathInZip) throws IOException { BufferedOutputStream out = null; FileInputStream fIn = null; BufferedInputStream in = null; final int bufSize = 512; try { // Open our streams fIn = new FileInputStream(source); in = new BufferedInputStream(fIn, bufSize); String filePathInZip = pathInZip + "/" + source.getName(); if (pathInZip.equals("")) filePathInZip = source.getName(); // System.out.println("Adding " + filePathInZip); ZipEntry entry = new ZipEntry(filePathInZip); zipOut.putNextEntry(entry); out =