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

时间:2015-11-07 16:06:45

标签: java eclipse file refresh

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

1 个答案:

答案 0 :(得分:2)

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

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

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

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

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

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