JAVA ZIP输入输出流(遇到的问题我的文件找不到,文件中或者多建立了一个盘)

就我的电脑而言
压缩的例子

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


public class Fifteen5 {

private void zip(String zipFileName,File inputFile) throws Exception{
  ZipOutputStream out=new ZipOutputStream(new FileOutputStream(zipFileName));
  zip(out,inputFile,"");
  System.out.println("压缩中。。。");
  out.close();
 }
 
 private void zip(ZipOutputStream out,File inputFile,String base) throws Exception{
  if(inputFile.isDirectory()){
   File[] fl=inputFile.listFiles();
   if(base.length()!=0){
    
    out.putNextEntry(new ZipEntry(base+"/"));
   }
   for(int i=0;i<fl.length;i++){
    zip(out,fl[i],base+fl[i]);
   }
  }else{
   out.putNextEntry(new ZipEntry(base));
   FileInputStream in=new FileInputStream(inputFile);
   int b;
   System.out.println(base);
   while((b=in.read())!=-1){
    out.write(b);
   }
   in.close();
  }
 }
 
 public static void main(String[] args) {
  Fifteen5 book=new Fifteen5();
  try {
   book.zip("D:/wangjunjie.zip",new File("D:/wangjunjie"));
   System.out.println("压缩完成");
  } catch (Exception e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
  
 }

解压的例子

package exercise;

import java.io.File;
import java.io.FileInputStream;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;

public class Decompressing { // 创建文件

 public static void main(String[] temp) {
  ZipInputStream zin; // 创建ZipInputStream对象
  try { // try语句捕获可能发生的异常
   zin = new ZipInputStream(new FileInputStream("wangjunjie.zip"));
   // 实例化对象,指明要进行解压的文件  
   ZipEntry entry = null; // 获取下一个ZipEntry
   while (((entry = zin.getNextEntry()) != null)
     && !entry.isDirectory()) {
    // 如果entry不为空,并不在同一目录下
    File file = new File("D:\\" + entry.getName()); // 获取文件目录
    System.out.println(file);
    if (!file.exists()) { // 如果该文件不存在
     file.mkdirs();// 创建文件所在文件夹
     file.createNewFile(); // 创建文件
    }
    zin.closeEntry(); // 关闭当前entry
    System.out.println(entry.getName() + "解压成功");
   }
   zin.close(); // 关闭流
  } catch (Exception e) {
   e.printStackTrace();
  }
 }
}

**问题一:**在文件中多建立了一个盘
在这里插入图片描述

问题解决:是因为你在压缩的时候book.zip()的第二个参数多加了一个盘但是你不加他又会报错(找不到文件)那你就需要找到你的java文件存在哪里,并且在与src的文件相同的文件层建立就可以了
在这里插入图片描述

问题二:为什么src文件可以不用加盘就可以找到,而其他文件必须加盘,但是文件里面会多建一个盘
在这里插入图片描述

问题解决:是因为src在这个项目的里面所以可以找到而其它文健没有建在该项目中,所以和第一问题的措施一样建在相同的目录中就可以了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值