如何在执行代码时刷新 src/main/resources 文件夹?

How to refresh src/main/resources folder while executing the code?

当我 运行 我的主要方法时,它会创建 src/main/resources/sample.txt 文件,然后读取它的内容。每当我运行它给出java.lang.NullPointerException的代码时,当它读取src/main/resources/sample.txt时。但是,当我刷新项目时,它读取 sample.txt 但 而不是 新内容,它读取 old 内容。 在读取文本文件之前,我似乎需要在 eclipse 中刷新 java 项目。 有没有办法在执行的时候刷新src/main/resources?

如果您能够写入该文件,那么您应该能够读取它。

我猜你是用文件路径写的 src/main/resources, 但您正在使用 ClassLoader.getResource 阅读它,它从 class 路径 target/classes.

读取

当您刷新项目并 eclipse 构建它时,src/main/resources 中的 source 文件被复制到 target/classes,使它们在 class 作为资源的路径。

我建议不要在 src/main/resources 中写入任何内容,因为只有当您从项目目录执行项目时才有效。

通常,ClassLoader 的class 路径是在程序启动期间设置的。根据它的缓存实现,classloader 通常不可能获取 class 路径中文件的更改。您需要创建一个新的 ClassLoader 并丢弃旧的,但这对于这种情况来说太复杂了。

要读取文件,使用与编写文件类似的代码:如果使用 FileWriter,则使用 FileReader;如果你用过FileOutputStream,就用FileInputstream等