将资源文件复制到文件夹?

时间:2009-07-21 20:07:40

标签: java

我需要从Java桌面应用程序生成复杂的文本文件。

如果我可以复制模板文件并将其定制为需要构建的任何内容,我已经确定代码将更容易实现。

我只会向顾客分发一个罐子。有关如何处理这个问题的最佳实践吗?

  • 甚至可以在运行时从jar复制资源吗?
  • 首次执行jar时“自动生成”模板会更好吗?

2 个答案:

答案 0 :(得分:8)

您可以使用以下方式读取存储在jar中的文件:

Class.getResourceAsStream(pathToFile);

有关详细信息,请参阅此question

答案 1 :(得分:5)

是的,您可以从JAR中读取资源并将其写入文件系统。正如kgiannakakis建议的那样,你将希望获得资源作为流。

然而,使用哪个类加载器是模糊的。我经常看到一些建议,在Web应用程序中,您应该使用上下文类加载器:

Thread.currentThread().getContextClassLoader().getResourceAsStream() 

然后在快速搜索中确认这仍然是正确的建议,很多人推荐当前的类加载器而不是的上下文类加载器,尽管大多数人都承认没有答案会在任何情况下都能完美运作Whee!

此时我会说使用当前的类加载器为@kgiannakakis建议 - 它更简单,并且不清楚使用上下文类加载器会更好。如果遇到不起作用的场景,可以尝试使用上下文类加载器作为替代。