Java 怎么使用 ZipOutputStream 以递归方式从目录创建 Zip 文件

李逍遥
17462
文章
5
评论
2019年5月19日20:40:37 评论 1144字阅读3分48秒

1.简介

Java 怎么使用 ZipOutputStream 以递归方式从目录创建 Zip 文件?——请看下文。

2.示例代码

/**
 * 版权所有 编程十万个怎么办(www.tah1986.com)
 */
public class CreateZipFileFromDirectoryRecursivelyUsingZipOutputStream {
	public static void main(String args[]) {
		String sourceDir = "E:/Copy";
		String zipFile = "zipdemo.zip";

		try {
			FileOutputStream fout = new FileOutputStream(zipFile);
			ZipOutputStream zout = new ZipOutputStream(fout);
			File fileSource = new File(sourceDir);
			addDirectory(zout, fileSource);
			zout.close();
			System.out.println("Zip文件创建成功!");
		} catch (IOException ioe) {
			ioe.printStackTrace();
		}
	}

	private static void addDirectory(ZipOutputStream zout, File fileSource) {
		File[] files = fileSource.listFiles();

		System.out.println("添加目录 " + fileSource.getName());

		for (int i = 0; i < files.length; i++) {
			if (files[i].isDirectory()) {
				addDirectory(zout, files[i]);
				continue;
			}
			try {
				System.out.println("添加文件 " + files[i].getName());
				byte[] buffer = new byte[1024];

				FileInputStream fin = new FileInputStream(files[i]);

				zout.putNextEntry(new ZipEntry(files[i].getName()));

				int length;

				while ((length = fin.read(buffer)) > 0) {
					zout.write(buffer, 0, length);
				}

				zout.closeEntry();

				fin.close();

			} catch (IOException ioe) {
				ioe.printStackTrace();
			}
		}
	}
}

3.结果

Java 使用 ZipOutputStream 以递归方式从目录创建 Zip 文件

4.总结

示例代码演示了 Java 怎么使用 ZipOutputStream 以递归方式从目录创建 Zip 文件,具体步骤参见示例代码。

展开全文
  • 版权声明: 发表于 2019年5月19日20:40:37
  • 转载注明:https://www.tah1986.com/3996.html
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: