在Java中使用resources目录的好用例是什么?

在Java中使用resources目录的好用例是什么?,java,Java,当我想将文件或资产(比如图像)从文件系统加载到我的程序中时,我可以使用以下方法直接从文件系统读取文件 Files.readAllLines(path.get(fileName)、StandardCharsets.UTF_8); vs将文件作为资源加载 getClass().getClassLoader().getResourceAsStream(文件名); 在Javadoc类#getResource()方法中,Javadoc指定命名模块中的资源受{@code Module}{@link Mo

当我想将文件或资产(比如图像)从文件系统加载到我的程序中时,我可以使用以下方法直接从文件系统读取文件

Files.readAllLines(path.get(fileName)、StandardCharsets.UTF_8);
vs将文件作为资源加载

getClass().getClassLoader().getResourceAsStream(文件名);

在Javadoc类#getResource()方法中,Javadoc指定命名模块中的
资源受{@code Module}{@link Module#getResourceAsStream getResourceAsStream}方法中指定的封装规则约束,因此当资源为非“{@code.Class}”时,此方法返回{@code null}包中的资源对调用方的模块不开放。
但不知何故,我无法理解将文件作为资源加载或只是从文件系统读取文件的决定因素。

文件:文件系统上的实际文件。资源:您可以将文件放在Jar文件中,并使用
getResource
加载它们,它们不需要分开(或分开下载)。当最终用户收到Jar文件而不是在其系统上使用完整的应用程序安装程序时,这很方便。不,它提到“如果您的属性存在于物理文件系统中的某个文件夹中(例如,用户文件夹,…),请使用FileInputStream,如果该文件嵌入在您的类路径中(例如,作为Jar中的资源),请使用getResourceAsStream”. 但没有解释为什么。就像为什么我要把文件作为资源而不是文件一样。我很好奇,这两种方法之间的根本区别是什么。