首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

java添解文件zip

2012-10-24 
java加解文件zip在网上找了一下,没有找到java解压rar文件,只找到了,zip文件,下面是加压和加压的一个实例:

java加解文件zip

在网上找了一下,没有找到java解压rar文件,只找到了,zip文件,

下面是加压和加压的一个实例:

用到了一个ant.jar 里面的一个org.apache.tools.zip.*包

?

下面是代码:实例工程在附件上,希望对你们有帮助

文件夹是中文乱码未解决:

?

?

解压:

public class UnZip {    static final int BUFFER = 2048;    public static void main(String argv[]) {        try {            String fileName = "E:/myfiles.zip";            String filePath = "E:/";            ZipFile zipFile = new ZipFile(fileName);            Enumeration emu = zipFile.entries();            int i=0;            while(emu.hasMoreElements()){                ZipEntry entry = (ZipEntry)emu.nextElement();                //会把目录作为一个file读出一次,所以只建立目录就可以,之下的文件还会被迭代到。                if (entry.isDirectory())                {                    new File(filePath + entry.getName()).mkdirs();                    continue;                }                BufferedInputStream bis = new BufferedInputStream(zipFile.getInputStream(entry));                File file = new File(filePath + entry.getName());                //加入这个的原因是zipfile读取文件是随机读取的,这就造成可能先读取一个文件                //而这个文件所在的目录还没有出现过,所以要建出目录来。                File parent = file.getParentFile();                if(parent != null && (!parent.exists())){                    parent.mkdirs();                }                FileOutputStream fos = new FileOutputStream(file);                BufferedOutputStream bos = new BufferedOutputStream(fos,BUFFER);                                           int count;                byte data[] = new byte[BUFFER];                while ((count = bis.read(data, 0, BUFFER)) != -1)                {                    bos.write(data, 0, count);                }                bos.flush();                bos.close();                bis.close();            }            zipFile.close();        } catch (Exception e) {            e.printStackTrace();        }    }}

?

加压

?

public class CompressBook {    public CompressBook() {}    /*    * inputFileName 输入一个文件夹    * zipFileName 输出一个压缩文件夹    */    public void zip(String inputFileName,String zipFileName) throws Exception {        System.out.println(zipFileName);        zip(zipFileName, new File(inputFileName));    }    private void zip(String zipFileName, File inputFile) throws Exception {        ZipOutputStream out = new ZipOutputStream(new FileOutputStream(zipFileName));        zip(out, inputFile, "");        System.out.println("zip done");        out.close();    }    private void zip(ZipOutputStream out, File f, String base) throws Exception {        if (f.isDirectory()) {           File[] fl = f.listFiles();           out.putNextEntry(new org.apache.tools.zip.ZipEntry(base + "/"));           base = base.length() == 0 ? "" : base + "/";           for (int i = 0; i < fl.length; i++) {           zip(out, fl[i], base + fl[i].getName());         }        }else {           out.putNextEntry(new org.apache.tools.zip.ZipEntry(base));           FileInputStream in = new FileInputStream(f);           int b;           System.out.println(base);           while ( (b = in.read()) != -1) {            out.write(b);         }         in.close();       }    }    public static void main(String [] temp){        CompressBook book = new CompressBook();        try {           book.zip("E:/test/a","e:/test/test.zip");//你要压缩的文件夹        }catch (Exception ex) {           ex.printStackTrace();       }    }}
?

热点排行