当前位置: 首页 > 面试题库 >

从jar文件复制目录

张勇
2023-03-14
问题内容

我最近开发了一个应用程序,并创建了jar文件。

我的课程之一创建了一个输出目录,并使用其资源中的文件填充该目录。

我的代码是这样的:

// Copy files from dir "template" in this class resource to output.
private void createOutput(File output) throws IOException {

    File template = new File(FileHelper.URL2Path(getClass().getResource("template")));
    FileHelper.copyDirectory(template, output);
}

不幸的是,这不起作用。

我没有运气就尝试了以下方法

  • 使用Streams解决其他类上的类似问题,但不适用于dirs。代码类似于 http://www.exampledepot.com/egs/java.io/CopyFile.html

  • 使用创建文件模板 new File(getClass().getResource("template").toUri())

在编写此代码时,我在考虑在资源路径中而不是包含zip文件的模板目录。这样,我可以将文件作为inputStream并将其解压缩到需要的位置。但是我不确定这是否正确。


问题答案:

我认为您使用zip文件的方法很有意义。大概您将对getResourceAsStreamzip的内部进行操作,该zip在逻辑上看起来像是目录树。

骨架方法:

InputStream is = getClass().getResourceAsStream("my_embedded_file.zip");
ZipInputStream zis = new ZipInputStream(is);
ZipEntry entry;

while ((entry = zis.getNextEntry()) != null) {
    // do something with the entry - for example, extract the data 
}


 类似资料:
  • 我试图将一些jar文件从WEB-INF/lib文件夹复制到src/main/webapp/applet文件夹,这是applet所需的全部归档文件,以便jar文件出现在输出war文件中。 我希望这个复制操作需要在maven构建过程中执行。我已经尝试了两个选项,一个是

  • 问题内容: 假设我的jar包“ com.test.io”中有一个名为test.txt的文件。 我将如何编写一个类来检索此文本文件,然后将内容复制到文件系统上的新文件中? 问题答案: 假设jar在您的类路径中:

  • 问题内容: 我正在使用AndroidStudio,并且有如下所示的项目: 在此处输入图片说明 蓝色圆圈内的是myLib。myLib还需要使用位于红色圆圈内的外部库和一个apache包(绿色圆圈)。 因此,我想将整个东西变成单个.jar,以便可以在其他项目中使用它。 我是开发人员领域的初学者,非常感谢您提供分步指南。 问题答案: 打开库项目的build.gradle 在build.gradle中编写

  • 使用Java8。 为了获得最佳性能,我尝试用复制文件,但很快发现它不支持汉字。例如: 代码打算从jar复制一个文件,但它抛出了一个异常(a“我的" 文件夹已提前创建): 问题是鎴戠殑" 甚至连一个中国人都看不懂,所以我正在寻找一个解决办法来处理汉字。 我也尝试了FileChannel,但失败了,意识到它用于直接文件,而不是在一个jar中的文件。我该怎么做?