公司要开发一套服务器远程维护系统,
其中有一个模块就是压缩下载,上传解压
考虑到跨平台及方便用户,至少要支持上面的几种格式
大家一起讨论下用java代码怎么实现那几种格式的压缩与解压缩谢谢

解决方案 »

  1.   

    你看一下java.util.zip包中的相关API的使用就知道了。
      

  2.   

    java.util.zip要处理中文的话需要重写里面的类
    而且只能压缩解压zip格式的文件
    无法处理rar及tar的格式
      

  3.   

    5.6楼的代码有点小问题,需要稍稍修改下就能用了。/**
     * 解压zip格式的压缩文件
     * 
     * @param zipFileName
     *            压缩文件
     * @param extPlace
     *            解压目录
     * @throws Exception
     */
    public static void unzip(String zipFileName, String extPlace)
    throws Exception {
    try {
    ZipFile zipFile = new ZipFile(zipFileName);
    Enumeration e = zipFile.getEntries();
    ZipEntry zipEntry = null;
    while (e.hasMoreElements()) {
    zipEntry = (ZipEntry) e.nextElement();
    String entryName = zipEntry.getName();
    String names[] = entryName.split("/");
    int length = names.length;
    String path = extPlace + File.separator;
    for (int v = 0; v < length; v++) {
    if (v < length - 1) {
    path += names[v] + "/";
    System.out.println(path);
    new File(path).mkdirs();
    } else { // 最后一个
    if (entryName.endsWith("/")) { // 为目录,则创建文件夹
    new File(extPlace + File.separator + entryName).mkdirs();
    } else {
    InputStream in = zipFile.getInputStream(zipEntry);
    File outentity = new File(extPlace+ File.separator +entryName);
    if(outentity.exists()){
    outentity.createNewFile();
    }
    OutputStream os = new FileOutputStream(outentity);
    byte[] buf = new byte[BUFFEREDSIZE];
    int len;
    while ((len = in.read(buf)) > 0) {
    os.write(buf, 0, len);
    }
    in.close();
    os.close();
    }
    }
    }
    }
    zipFile.close();
    } catch (Exception ex) {
    ex.printStackTrace();
    }
    }
      

  4.   

    楼主的代码跑不起来.
    ...
    好像是少什么包包..能说下具体的创建过程吗?是不是 Java Project 项目啊?
      

  5.   

    谁能告诉我tar和rar的怎么操作
    谢谢!
      

  6.   

    在Windows下,可以采用调用系统命令的方法来调用7z来实现
      

  7.   

    rar算法有版权问题,好像解压缩是许可的,压缩好像要从作者那里买版权吧忘记了
      

  8.   


    unrarCmd=C:\\WinRAR\\UnRar x 
    Runtime rt = Runtime.getRuntime();
    Process process = rt.exec(unrarCmd + 文件名);
      

  9.   

    RAR 压缩算法属于商业机密,WinRAR 也是共享版软件,可能都用惯了非法授权的软件就认为是理所当然了!
      

  10.   

    而 ZIP 压缩算法是免费开放的,任何人可以免费使用。但是 RAR 就不一样了,
    这个压缩算法已经受到专利权的保护,如果要使用 RAR 算法必须向其专利所有
    人支付费用。中国人用惯了盗版的 WinRAR,以为 RAR 才是压缩格式的王道,自以为是的以为
    全天下的压缩软件都应该支持 RAR 格式。曾看到有些人做了一些东西并且发布成开源的,但是他们是采用 RAR 格式打包的,
    要知道这是一种侵犯知识产权的行为。之所以所有的开源框架都是采用 zip 打包
    的也就是这个原因了。
      

  11.   

    顶17楼,不过虽然是有版权的,网上仍能下到非法的JAR报来解压缩的
      

  12.   

    网上搜一下吧,很多的
    给个参考http://www.javaeye.com/topic/350001
      

  13.   

    怎么解压tar的?怎么解压tar的?怎么解压tar的?怎么解压tar的?
      

  14.   


    招聘Flash游戏开发(java)
     要求:
    1.两年以上java开发经验。
    2.精通面向对象的分析和设计技术,包括设计模式、UML建模等。
    3.精通Java SE和Java EE技术。
    4.熟悉Linux操作系统,可以熟练使用常用的Linux命令完成日常工作。
    5.熟悉oracle、mysql、sqlserver等数据库,对oracle数据库深入的理解。
    6.对各种开源的框架如Spring、Hibernate、struts、webwork2等有深入的了解,读过源代码者尤佳。
    7.熟悉freemaker模板引擎。
    8.有大规模高并发访问的网站架构设计和开发经验优先。
    9.专注于技术,精益求精。
    10.思路清晰,沟通能力强
    有意者请发送简历至:[email protected]
    (简历主题写招聘职位)
    公司:正明润华  地址:北京朝阳望京