java zip 压缩文件



package test;

import java.io.*;
import java.util.*;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;

public class ZipAddOutputStream3 {

 public static void main(String[] args) throws IOException {
  File file = new File("d:" + File.separator + "demo.txt");
  File zipFile = new File("d:" + File.separator + "demo.zip");
  InputStream input = null;
  ZipOutputStream zipOut = new ZipOutputStream(new FileOutputStream(
    zipFile));
  int len = 0;
  if (file.isDirectory()) {
   yaSuo(file, input, zipOut);

  } else {
   input = new FileInputStream(file);
   zipOut.putNextEntry(new ZipEntry(file.getName()));
   zipOut.setComment(file.getName());
   while ((len = input.read()) != -1) {
    zipOut.write(len);
   }
   input.close();
   
  }
  zipOut.close();
 }

 public static void yaSuo(File file, InputStream input,
   ZipOutputStream zipOut) throws IOException {
  File[] filePath = file.listFiles();
  int temp = 0;
  for (int i = 0; i < filePath.length; i++) {
   if (filePath[i].isDirectory()) {
    yaSuo(filePath[i], input, zipOut);
   } else {
    String  path=filePath[i].getAbsolutePath();
       int t=path.indexOf("\\");

       if(t!=-1)
                    path=path.substring(t+1, path.length());
      
       System.out.println(path);
    input = new FileInputStream(filePath[i]);
    zipOut.putNextEntry(new ZipEntry(path));
    while ((temp = input.read()) != -1) {
     zipOut.write(temp);
    }
    input.close();
    
   }
  }

  
  
 }

}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java可以使用ZipOutputStream类来实现zip压缩文件的功能,以下是一个简单的示例代码: ```java import java.io.*; import java.util.zip.*; public class ZipDemo { public static void main(String[] args) throws IOException { String sourceFile = "source.txt"; // 待压缩文件 String zipFile = "compressed.zip"; // 压缩后的文件名 FileOutputStream fos = new FileOutputStream(zipFile); ZipOutputStream zipOut = new ZipOutputStream(fos); File fileToZip = new File(sourceFile); FileInputStream fis = new FileInputStream(fileToZip); ZipEntry zipEntry = new ZipEntry(fileToZip.getName()); zipOut.putNextEntry(zipEntry); byte[] bytes = new byte[1024]; int length; while ((length = fis.read(bytes)) >= 0) { zipOut.write(bytes, 0, length); } zipOut.close(); fis.close(); fos.close(); } } ``` 该程序将会读取一个名为source.txt的文件,将其压缩成名为compressed.zipzip文件。程序中使用了Java的IO流和ZipOutputStream类来完成压缩操作,具体实现过程如下: 1. 创建一个ZipOutputStream对象,用于向压缩文件中写入数据。 2. 读取需要压缩的文件。 3. 创建一个ZipEntry对象,用于描述待压缩文件的名称和属性。 4. 将ZipEntry对象写入ZipOutputStream中。 5. 循环读取待压缩文件的内容,并将其写入ZipOutputStream中。 6. 关闭ZipOutputStream与输入流。 7. 压缩完成。 需要注意的是,Java中还有许多其他的压缩方式和库,例如GZIP、JAR等,可以根据需要选择适当的方式来完成压缩操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值