使用 java 移动文件都有哪些方法?

Posted

技术标签:

【中文标题】使用 java 移动文件都有哪些方法?【英文标题】:What are some methods that one use to move files with java?使用 java 移动文件有哪些方法? 【发布时间】:2013-02-11 21:37:44 【问题描述】:

我正在为我正在制作的程序安装安装程序,它使用 zip 文件,但由于某种原因,我找不到从 zip 文件夹解压缩和安装文件的方法。如果有人可以帮助我,我会非常高兴。

【问题讨论】:

可以看看这个 API:docs.oracle.com/javase/6/docs/api/java/util/zip/… “我正在为一个程序做安装程序” 使用Java Web Start 作为安装程序! 查看 java.util.zip API (docs.oracle.com/javase/6/docs/api/java/util/zip/…) 看看是否有任何帮助。 另外你应该知道这个库的存在:commons.apache.org/compress/zip.html 一般来说,如果它有一个公共库,这意味着它比标准库提供的 API 更容易使用。 安装程序需要克服的第一个障碍是确保安装了合适的 JRE。在此基础上创建一个“基本”安装程序并非易事。创建一个安装程序可以做任何事情更多而不是简单的安装(自动更新、使用本机、桌面集成)是一项艰巨的任务。由于已经有 很多 的现有安装程序(例如 JWS、Launch4J、JSmooth 等)可以做到这一点,因此自行推出似乎是浪费精力。 【参考方案1】:

虽然java.util.zip 和 Apache commons-io 提供了很好的机制来从 Java 中的 zip 文件中读取数据,但如果您真的想将 zip 文件解压到磁盘上并保留目录结构,那么最简单的 Java API 可能就是阿帕奇蚂蚁。

Project p = new Project();
p.init();
Expand ex = new Expand();
ex.setProject(p);
ex.setSrc(new File("myArchive.zip"));
ex.setDest(new File("targetDir"));
ex.perform();

但正如其他评论者所指出的,您可能应该考虑使用现有的安装程序构建工具,例如 IZPack,而不是重新发明***。

【讨论】:

【参考方案2】:

试试这个解压你的文件:

String zipName = "my.zip";
String installDir = "/home/user/installDir";
try

    ZipFile zipFile = new ZipFile(zipName);
    files = zipFile.entries();
    while (files.hasMoreElements())
    
         ZipEntry zipEntry = files.nextElement();
         if(zipEntry.isDirectory())
         
                (new File(installDir + zipEntry.getName())).mkdir();
                 continue;
         
         InputStream in = zipFile.getInputStream(zipEntry);
         File newFile = new File("/home/user/tmp/testdit" + File.separator + zipEntry.getName());

         new File(newFile.getParent()).mkdirs();
         FileOutputStream fos = new FileOutputStream(newFile);
         byte[] buffer = new byte[1024];
         int len;

         while ((len = in.read(buffer)) >= 0)
         
                fos.write(buffer, 0, len);
         

         in.close();
         fos.close();
       
    catch (IOException ex)
   
        ex.printStackTrace();
   

【讨论】:

以上是关于使用 java 移动文件都有哪些方法?的主要内容,如果未能解决你的问题,请参考以下文章

移动开发技术都有哪些?

php开源的web文档管理系统都有哪些

目前主流的移动WEB开发框架都有哪些

html5 移动开源框架都有哪些

TeamViewer功能都有哪些,好不好用?

hbuilder做移动端css单位都有哪些