// 压缩文件夹 //先用输入流读取文件,之后再用压缩流输出文件 public static void main(String[] args) throws Exception { File file = new File("d:" + File.separator + "myDir");// 源文件 File zipFile = new File("d:" + File.separator + "2.zip");// 被压缩文件的路径 InputStream inputStream = null; ZipOutputStream zipOutputStream = new ZipOutputStream(new FileOutputStream(zipFile)); zipOutputStream.setComment("压缩的注释"); if (file.isDirectory()) {//如果文件里面有目录 File[] listFiles = file.listFiles();//列出全部文件 for (int i = 0; i < listFiles.length; i++) { inputStream = new FileInputStream(listFiles[i]);//为每一个文件设置输入流 // 每一个压缩文件的子文件都用ZipEntry表示 // 需要为每一个压缩的文件,设置名称 zipOutputStream.putNextEntry(new ZipEntry(file.getName() + File.separator + listFiles[i].getName())); int temp = 0; while ((temp = inputStream.read()) != -1) {// 读取内容 zipOutputStream.write(temp);// 压缩输出内容 } inputStream.close(); } } zipOutputStream.close(); }