对java zip输入输出流的学习过程

 

贴上代码,写上自己一点对java zip输入输出流的学习过程。

import java.io.BufferedInputStream;

import java.io.File;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.util.zip.*;//导入

//使用ZipInputStream和ZipOutputStream简单压缩和解压缩

public class ziptext{

         String zipname;//压缩和解压缩zip文件名。

         String zipdirname;//压缩、解压缩目录名(格式:D:\\dir\\)

         int zipUnotNo;//判断是压缩还是解压缩 0 解压缩 1 压缩。

         public ziptext(String zipname,String zipfilename,int zipUnorNo)

         {

                   this.zipname=zipname;

                   this.zipdirname=zipfilename;

                   this.zipUnotNo=zipUnotNo;

                   if(zipUnorNo==1)

                   {

                   try

                   {

              File zipfile=new File(zipfilename);

                    ZipOutputStream zfo=new ZipOutputStream(new FileOutputStream(zipname));//zip输出流

                    for(File i:zipfile.listFiles())

                   {

                            byte [] buf=new byte[(int)i.length()];

                                FileInputStream fo=new FileInputStream(i.getPath());

                                     fo.read(buf);

                                     zfo.putNextEntry(new ZipEntry(i.getName()));//写入zip输出流条目

                                     zfo.write(buf);

                                     fo.close();

                   }

                   zfo.close();

                   }

                   catch(Exception e)

                   {

                            e.printStackTrace();

                   }

                   }

                   else

                   {

                            try

                            {

                                     ZipInputStream zfo2=new ZipInputStream(new FileInputStream(zipname));//zip输入流

                                     ZipEntry unfile;

                                     while(true)

                                     {

                                               unfile=zfo2.getNextEntry();

                                               if(unfile==null)

                                               {

                                                        break;

                                               }

                                               BufferedInputStream bzfo2=new BufferedInputStream(zfo2,(int)unfile.getSize());//包装zip输入流

                                               byte [] buf2=new byte[(int)unfile.getSize()];

                                               bzfo2.read(buf2);

                                               FileOutputStream unfin=new FileOutputStream(zipdirname+unfile.getName());

                                               unfin.write(buf2);

                                               unfin.close();

                                     }

                                     zfo2.close();

                            }

                            catch(Exception e)

                            {

                                     e.printStackTrace();

                            }

                   }

         }

         public static void main(String[] arge)

         {

                   //使用ZipInputStream和ZipOutputStream简单压缩和解压缩

                   new ziptext("D:\\hello.zip","D:\\",0);      

         }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值