zip解压缩

    技术2022-05-11  33

    import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.File;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 org.apache.tools.zip.ZipEntry;import org.apache.tools.zip.ZipFile;

    public class UpZip {

     /**  * @param args  */  public static List<String> upZipFile(String zippath,String zipdir) throws Exception{        ZipFile zfile=new ZipFile(zippath);        Enumeration<ZipEntry> zList=zfile.getEntries();        ZipEntry ze=null;           byte[] buf=new byte[2048];        List<String> namelist=new ArrayList();        while(zList.hasMoreElements()){                ze=(ZipEntry)zList.nextElement();                      if(ze.isDirectory()){                    File f=new File(zipdir);                    f.mkdir();                   continue;                }            namelist.add(ze.getName());            OutputStream os=new BufferedOutputStream(new FileOutputStream(getRealFileName(zipdir, ze.getName())));              InputStream is=new BufferedInputStream(zfile.getInputStream(ze));               int readLen=0;               while ((readLen=is.read(buf, 0, 2048))!=-1) {                    os.write(buf, 0, readLen);                }                is.close();                os.close();             }            zfile.close();         return namelist;     }     public static File getRealFileName(String baseDir, String absFileName){            String[] dirs=absFileName.split("/");         File ret=new File(baseDir);           if(dirs.length>1){               for (int i = 0; i < dirs.length-1;i++) {                    ret=new File(ret, dirs[i]);                }               if(!ret.exists())                    ret.mkdirs();                ret=new File(ret, dirs[dirs.length-1]);               return ret;            }           return ret;        } public static void main(String[] args) {  try {   UpZip.upZipFile("f://bg.zip", "f:/ff");  } catch (Exception e) {   e.printStackTrace();  }

     }

    }


    最新回复(0)