java zip 压缩包

package java.util.zip;

文件导出到【临时目录】,压缩包放【临时目录】外边

打完包根据需要 删除【临时目录】

(得先删【临时目录】中的文件,才能删掉【临时目录】)

文件流 不关 删不掉文件

 文件夹 :

目标.zip

临时目录

       文件1.pdf

       文件2.pdf

                    try(
						// 压缩包  压缩包位置:zipFilePath
						FileOutputStream fileOutputStream = 
                            new FileOutputStream(zipFilePath);

						CheckedOutputStream cos = new CheckedOutputStream(fileOutputStream, new CRC32());
						ZipOutputStream zipOut = new ZipOutputStream(cos);
					){

					// 取文件 临时目录:pdfFilePath 
					String pdfFilePath = filePath + "/" + userId + "/" + tempFilePath;
					File fileDir = new File(pdfFilePath);
					File[] files = fileDir.listFiles();
					for (File file : files) {
						if(file.isDirectory()){
							file.delete();
							continue;
						}
						try(
								FileInputStream fis = new FileInputStream(file);
								BufferedInputStream bis = new BufferedInputStream(fis);
								){
							ZipEntry entry = new ZipEntry(file.getName());
							zipOut.putNextEntry(entry);
							int count;
							byte[] data = new byte[8192];
							while ((count = bis.read(data, 0, 8192)) != -1) {
								zipOut.write(data, 0, count);
							}
						}
						file.delete();
					}
					zipOut.flush();
					zipOut.close();

					fileDir.delete();
				}

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要将Java文件打包为Zip压缩包,可以使用Java中的ZipOutputStream类。下面是一个基本的代码示例: ```java import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.util.zip.ZipEntry; import java.util.zip.ZipOutputStream; public class ZipFiles { public static void main(String[] args) { String sourceFolder = "C:\\myfolder"; String outputZipFile = "C:\\myfolder.zip"; zipFolder(sourceFolder, outputZipFile); } public static void zipFolder(String sourceFolder, String outputZipFile) { try { FileOutputStream fos = new FileOutputStream(outputZipFile); ZipOutputStream zos = new ZipOutputStream(fos); File folder = new File(sourceFolder); for (File file : folder.listFiles()) { addFileToZip(file, zos); } zos.close(); fos.close(); System.out.println("Folder has been compressed into Zip file: " + outputZipFile); } catch (IOException e) { e.printStackTrace(); } } private static void addFileToZip(File file, ZipOutputStream zos) throws IOException { if (file.isDirectory()) { for (File innerFile : file.listFiles()) { addFileToZip(innerFile, zos); } } else { byte[] buffer = new byte[1024]; FileInputStream fis = new FileInputStream(file); zos.putNextEntry(new ZipEntry(file.getName())); int length; while ((length = fis.read(buffer)) > 0) { zos.write(buffer, 0, length); } zos.closeEntry(); fis.close(); } } } ``` 在这个例子中,`ZipFiles` 类拥有一个 `zipFolder` 方法,它使用 Java IO 类读取指定文件夹中的所有文件,压缩它们,并将其写入到指定的 `outputZipFile` 文件中。 要 compress 某个文件夹,只需调用 `zipFolder` 方法,将 `.zip` 文件名和要被 `zip` 压缩的文件夹的路径传入即可。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值