凡人泛舟

逝者如斯
网志分类
· 所有网志
· 手机开发
· 软件工程
· 程序人生
· p2p
· db2
· struts
· spring
· hibernate
· JAVA
· Web2.0
· 未分类
搜索本站
友情链接
· 我的歪酷 非非共享界
· 新浪体育
· 程序员大本营
· mandy的博客
· DLL文件集合
· 开复学生网
· 微软亚洲研究院
· Advanced JAVA
· IBM中国开发者
· java-sum
· 分享java快乐
· javaworld
· java爱好者
· 铁手java
· java在线教程(e文)
· P2P天空
· 8848software
· http://www.donews.com/
· 嘟嘟老窝

订阅 RSS

0033606

歪酷博客


« 上一篇: JAVA自动更新程序(转载) 下一篇: 【转】使用 UML 进行业务建模:理解业务用例与系统用例的相似和不同之处 »
@ 2006-12-13 13:05

用java程序高效的解压jar文件(转载)

来源:http://topic.csdn.net/t/20050721/19/4159928.html

我写了一个方法,但是占有大量的cpu,希望大侠指教   


  我的代码入下:  
  public   static   boolean   unJarFile(String   jarFileName,String   outputDirectory)  
      {  
          JarInputStream   in=null;  
          try  
          {  
              in=new   JarInputStream(new   FileInputStream(jarFileName));  
              JarEntry   jen;  
              while((jen=in.getNextJarEntry())!=null)  
              {  
                  if(jen.isDirectory())  
                  {  
                        String   name   =   jen.getName();  
                        name   =   name.substring(0,   name.length()   -   1);  
                        File   file   =   new   File(outputDirectory   +   File.separator   +   name);  
                        file.mkdir();  
                  }  
                  else  
                  {  
                      String   fname=outputDirectory   +   File.separator   +   jen.getName().substring(0,jen.getName().indexOf("/"));  
                      File   dt=new   File(fname);  
                      if(!dt.exists())  
                      {  
                            dt.mkdir();  
                      }  
                      File   file   =   new   File(outputDirectory   +   File.separator   +   jen.getName());  
                      file.createNewFile();  
                      FileOutputStream   out   =   new   FileOutputStream(file);  
                      int   b;  
                      while   (   (b   =   in.read())   !=   -1){  
                          out.write(b);  
                      }  
                      out.close();  
                  }  
              }  
              in.close();  
          }  
          catch(Exception   e)  
          {  
              try   {  
                  //e.printStackTrace();  
                  in.close();  
                  return   false;  
              }  
              catch   (IOException   ex)   {  
                  return   false;  
              }  
          }  
          return   true;  
      }  
  希望能有一个高效的算法



最新评论


luver

2007-07-06 12:46 匿名 220.249.*.*

while   (   (b   =   in.read())   !=   -1){   
                         out.write(b);   
}


评论 / 个人网页 / 扔小纸条
* 昵称

已经注册过? 请登录

新用户请先注册 以便能显示头像及追踪评论回复

Email
网址
* 评论
表情
 


 

分类小组论坛
杂谈 , 娱乐、八卦 , 文学、艺术 , 体育 , 旅游、同城 , 象牙塔 , 情感 , 时尚、生活 , 星座 , 科技

请注意遵守中华人民共和国法律法规, 如威胁到本站生存, 将依法向有关部门报告, 同时本站的相关记录可能成为对您不利的证据.

相关法律法规
全国人大常委会关于维护互联网安全的决定
中华人民共和国计算机信息系统安全保护条例
中华人民共和国计算机信息网络国际联网管理暂行规定
计算机信息网络国际联网安全保护管理办法
计算机信息系统国际联网保密管理规定