【发布时间】:2014-11-24 15:21:59
【问题描述】:
我的资源中有一个文件夹,我想在应用程序第一次启动时提取到磁盘。我在这里确实有这种和平的代码,我试图将它们复制到磁盘,但我得到的只是空文件。该文件夹包含 .gnh 文件。我在哪里丢失了文件字节?
public void getTemplates() throws URISyntaxException {
final URL url = TemplateUtils.class.getResource("/templates/");
if (url != null) {
final File dir = new File(url.toURI());
for (final File file : dir.listFiles()) {
try {
final OutputStream outStream = new FileOutputStream(
PathManager.INSTANCE.getRootPath() + file.getName());
final long writtenBytes = Files.copy(file.toPath(), outStream);
LOG.info(writtenBytes);
outStream.flush();
outStream.close();
} catch (final IOException e) {
LOG.error(e.getMessage(), e);
}
}
}
}
LOG.info(writtenBytes) 说 0
编辑: 当我复制简单的文本文件时,一切正常。但是对于那些 .gnh 文件,什么都没有了。还有其他方法可以将这些文件提取到磁盘吗?
【问题讨论】:
-
fileInfo 到底是什么意思?我此时记录了 file.length() 并且它为零。所以我尝试了一个简单的文本文件,我的方法奏效了。看起来问题出在这个愚蠢的 .gnh FileFormat 上。还有其他方法可以复制/提取文件夹吗?
-
评论错误。我误解了 。删除了
标签: java file copy outputstream