zyl_angle 发表于 2013-1-28 19:30:15

java文件处理之压缩,分割

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.List;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
import java.util.zip.ZipOutputStream;

/** *//**
*
* @author VickenYang
* 文件处理工具
*/
public class FileProcessor ...{
   
    public static void createZipFile(File from,File to) throws Exception ...{
      if(!from.isFile())...{
            throw new Exception("file not exists"+from.getAbsolutePath());
      }
      if(to.isFile())...{
            throw new Exception("file already exists"+to.getAbsolutePath());
      }
      else...{
            to.createNewFile();
      }
      
      ZipOutputStream zos = new ZipOutputStream(new FileOutputStream(to));
      ZipEntry ze = null;
      byte[] buf = new byte;
      int readLen = 0;
      ze = new ZipEntry(from.getAbsolutePath());
      ze.setSize(from.length());
      ze.setTime(from.lastModified());
      zos.putNextEntry(ze);
      InputStream is = new BufferedInputStream(new FileInputStream(from));
      while ((readLen=is.read(buf, 0, 1024))!=-1) ...{
            zos.write(buf, 0, readLen);
      }
      is.close();
      zos.close();
    }
   
    public static void decompressZipFile(File from,File to) throws Exception...{
      if(!from.isFile())...{
            throw new Exception("file not exists"+from.getAbsolutePath());
      }
      if(!to.isDirectory())...{
            throw new Exception("file not directory"+to.getAbsolutePath());
      }
      ZipFile zfile = new ZipFile(from.getAbsoluteFile());
      Enumeration zList = zfile.entries();
      ZipEntry ze=null;
      byte[] buf=new byte;
      while(zList.hasMoreElements())...{
            ze=(ZipEntry)zList.nextElement();
            if(ze.isDirectory())...{
                continue;
            }
            String[] zet = ze.getName().replace('\', '/').split("/");
            OutputStream os=new BufferedOutputStream(new FileOutputStream(to.getAbsoluteFile()+zet));
            InputStream is=new BufferedInputStream(zfile.getInputStream(ze));
            int readLen=0;
            while ((readLen=is.read(buf, 0, 1024))!=-1) ...{
                os.write(buf, 0, readLen);
            }
            is.close();
            os.close();
      }
      zfile.close();
    }
}
页: [1]
查看完整版本: java文件处理之压缩,分割