我正在尝试将类路径中的文件复制到另一个临时位置。
以下是代码:
InputStream inputStream = this.getClass().getClassLoader()
.getResourceAsStream(readmeFile);
Path path = Paths.get(tempFilesOutputPath + File.separator + readmeFile);
try {
Files.copy(inputStream, path, StandardCopyOption.REPLACE_EXISTING);
inputStream.close();
} catch (IOException e) {
throw e;
}
readMeFile有2个页面,tempFilesOutputPath文件夹中的复制文件也有两个页面但没有任何内容。
如果我犯了一些错误,或者必须以不同的方式完成,请告诉我。
干杯, 马杜
答案 0 :(得分:7)
问题完全不相关。我正在使用maven复制资源来复制我的src / main / resources /
下的资源这是我的maven资源:
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
<include>**/*.txt</include>
<include>**/*.html</include>
<include>**/*.pdf</include>
</includes>
</resource>
由于过滤已开启,PDF文件被复制为空doco到目标文件夹。
我把它分成两个资源,过滤掉了PDF文件。
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
<include>**/*.txt</include>
<include>**/*.html</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
<filtering>false</filtering>
<includes>
<include>**/*.pdf</include>
</includes>
</resource>
感谢Drew Buckley,我在尝试对文件进行二进制比较时遇到了问题。项目中的实际文件是不同的,目标文件夹中从maven复制的文件是不同的。
现在工作正常。
答案 1 :(得分:4)
是的,这对我也有用; 在Maven文档中,我找到了this以获取更多信息;
警告:请勿使用图像等二进制内容过滤文件!这很可能会导致输出损坏。如果您同时拥有文本文件和二进制文件作为资源,则需要声明两个互斥的资源集。第一个资源集定义要过滤的文件,另一个资源集定义要不加改变的文件