我需要从Java桌面应用程序生成复杂的文本文件。
如果我可以复制模板文件并将其定制为需要构建的任何内容,我已经确定代码将更容易实现。
我只会向顾客分发一个罐子。有关如何处理这个问题的最佳实践吗?
答案 0 :(得分:8)
答案 1 :(得分:5)
是的,您可以从JAR中读取资源并将其写入文件系统。正如kgiannakakis建议的那样,你将希望获得资源作为流。
然而,使用哪个类加载器是模糊的。我经常看到一些建议,在Web应用程序中,您应该使用上下文类加载器:
Thread.currentThread().getContextClassLoader().getResourceAsStream()
然后在快速搜索中确认这仍然是正确的建议,很多人推荐当前的类加载器而不是的上下文类加载器,尽管大多数人都承认没有答案会在任何情况下都能完美运作Whee!
此时我会说使用当前的类加载器为@kgiannakakis建议 - 它更简单,并且不清楚使用上下文类加载器会更好。如果遇到不起作用的场景,可以尝试使用上下文类加载器作为替代。