Java 是否将资源文件复制到文件夹?

Java 是否将资源文件复制到文件夹?,java,Java,我需要从Java桌面应用程序生成复杂的文本文件 我已经决定,如果我可以复制一个模板文件,并根据需要构建的内容对其进行裁剪,那么代码将更容易实现 我只会分发一个罐子给顾客。关于如何处理这一问题,是否有最佳实践 甚至可以在运行时从jar复制资源吗 在第一次执行jar时“自动生成”模板更好吗 您可以使用以下方法读取存储在jar中的文件: Class.getResourceAsStream(pathToFile); 有关详细信息,请参见此部分。是的,您可以从JAR中读取资源并将其写入文件系统。正如K

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

我已经决定,如果我可以复制一个模板文件,并根据需要构建的内容对其进行裁剪,那么代码将更容易实现

我只会分发一个罐子给顾客。关于如何处理这一问题,是否有最佳实践

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

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

Class.getResourceAsStream(pathToFile);

有关详细信息,请参见此部分。

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

然而,使用哪个类加载器是不明确的。我经常看到在web应用程序中应该使用上下文类加载器的建议:

Thread.currentThread().getContextClassLoader().getResourceAsStream() 
但是,在快速搜索以确认这仍然是正确的建议时,许多人建议使用当前的类加载器而不是上下文类加载器,尽管大多数人承认没有一个答案在任何情况下都能完美工作。哇


在这一点上,我要说的是按照@kgiannakakis的建议使用当前的类加载器——它更简单,而且使用上下文类加载器是否会更好还不清楚。如果您遇到这样的情况,那么可以尝试使用上下文类加载器作为替代方法。

我不明白您想从何处复制文件。你能说清楚一点吗?模板文件在哪里?它在罐子里吗?您是否希望客户在启动应用程序后将此文件保存在其计算机上?可能存在的副本