如题。
使用的类应该是java.util.zip还是java.util.jar?
具体怎么使用?
请高手指点,最好给个例子,谢谢

解决方案 »

  1.   

    压缩:
    ZipOutputStream zos=new ZipOutputStream(new FileOutputStream("d:/1.zip"));
    zos.putNextEntry(new ZipEntry("1.txt"));
    zos.write(...);//写入文件内容
    zos.closeEntry();
    zos.putNextEntry(new ZipEntry("doc/1.txt"));//另一个目录下的文件
    zos.write(...);//写入文件内容
    zos.closeEntry();
    zos.close();解压:用ZipInputStream,程序与上面类似如果用ZipFile也可以
      

  2.   

    import org.apache.tools.zip.ZipEntry;
    import org.apache.tools.zip.ZipFile;
    import org.apache.tools.zip.ZipOutputStream;    public boolean zip(ZipOutputStream zos ,File f,String szBaseDir) throws IOException {
            File[] fList;
            int n=0;
            byte[] byBuf=new byte[m_nBufSize];
            int nRead=0;
            ZipEntry ze;
            BufferedInputStream bis;
            
            if(!f.exists())
                return false;
            if(f==null)
                f=new File(".");
            //若是目录,递归
            if(f.isDirectory()){
                fList=f.listFiles();
                //遍历该目录下的各个文件
                for(n=0;n<fList.length;++n){
                    if (zip(zos, fList[n], szBaseDir + f.getName() + File.separator) == false)
                        return false;
                }
                
            //若是文件,写入压缩流
            }else{
                ze=new ZipEntry(szBaseDir+f.getName());
                zos.putNextEntry(ze);
                bis=new BufferedInputStream(new FileInputStream(f));
                while ((nRead = bis.read(byBuf)) >= 0) {
                    zos.write(byBuf, 0, nRead);
                }
                bis.close();
                zos.closeEntry();
            }
            return true;
        }