代码之家  ›  专栏  ›  技术社区  ›  Nate

是否将资源文件复制到文件夹?[关闭]

  •  2
  • Nate  · 技术社区  · 15 年前

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

    我已经决定,如果我可以复制一个模板文件并根据需要构建的任何内容对其进行定制,那么代码的实现就容易得多。

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

    • 甚至可以在运行时从JAR复制资源吗?
    • 在第一次执行JAR时“自动生成”模板更好吗?
    2 回复  |  直到 7 年前
        1
  •  8
  •   Community CDub    7 年前

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

    Class.getResourceAsStream(pathToFile);
    

    看到这个 question 详情。

        2
  •  5
  •   Geoffrey Wiseman    7 年前

    是的,您可以从JAR中读取资源并将其写入文件系统。正如Kgianakakis所建议的,您将希望以流的形式获得资源。

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

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

    但是,在快速搜索确认这仍然是正确的建议后,很多人推荐了当前的类加载器。 相反 对于上下文类加载器,尽管大多数人承认没有任何答案在任何情况下都能完美地工作。哇!

    在这一点上,我要说的是按照@kgiannakakis的建议使用当前的类加载器——这很简单,不清楚使用上下文类加载器会更好。如果遇到一个不起作用的场景,可以尝试使用上下文类加载器作为替代方法。