我需要从Java桌面应用程序生成复杂的文本文件.
我已经决定,如果我可以复制模板文件并将其定制为需要构建的任何内容,那么代码将更容易实现.
我只会向客户分发罐子.有关于如何处理这个问题的最佳做法吗?
您可以使用以下方法读取存储在jar中的文件:
Class.getResourceAsStream(pathToFile);
Run Code Online (Sandbox Code Playgroud)
有关详情,请参阅此问题.
是的,您可以从JAR中读取资源并将其写入文件系统.正如kgiannakakis建议的那样,你将希望获得资源作为流.
但是,使用哪个类加载器是模糊的.我经常看到一些建议,在Web应用程序中,您应该使用上下文类加载器:
Thread.currentThread().getContextClassLoader().getResourceAsStream()
Run Code Online (Sandbox Code Playgroud)
但是在快速搜索中确认这仍然是正确的建议,很多人推荐使用当前的类加载器而不是上下文类加载器,尽管大多数人都承认没有任何答案可以在任何情况下都能正常工作.Whee!
在这一点上,我只是说使用当前的类加载器作为@kgiannakakis建议 - 它更简单,并且不清楚使用上下文类加载器会更好.如果遇到不起作用的场景,可以尝试使用上下文类加载器作为替代方案.
| 归档时间: |
|
| 查看次数: |
8671 次 |
| 最近记录: |