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

Nat*_*ate 2 java

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

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

我只会向客户分发罐子.有关于如何处理这个问题的最佳做法吗?

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

kgi*_*kis 8

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

Class.getResourceAsStream(pathToFile);
Run Code Online (Sandbox Code Playgroud)

有关详情,请参阅此问题.


Geo*_*man 5

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

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

Thread.currentThread().getContextClassLoader().getResourceAsStream() 
Run Code Online (Sandbox Code Playgroud)

但是在快速搜索中确认这仍然是正确的建议,很多人推荐使用当前的类加载器而不是上下文类加载器,尽管大多数人都承认没有任何答案可以在任何情况下都能正常工作.Whee!

在这一点上,我只是说使用当前的类加载器作为@kgiannakakis建议 - 它更简单,并且不清楚使用上下文类加载器会更好.如果遇到不起作用的场景,可以尝试使用上下文类加载器作为替代方案.