如何在Java中查看资源文件是否存在?

38

我正在尝试以Java的方式将文本输出到资源文件,代码如下:

File file = new File(MLM.class.getClassLoader().getResource("mazes.txt").toString());
BufferedWriter out = new BufferedWriter(new FileWriter(file));
..

但是由于资源文件还未被创建,我会得到一个空指针异常。如果资源文件不存在,我该如何先创建一个空的资源文件来避免这个错误呢?


请查看此帖子:https://dev59.com/N3I-5IYBdhLWcg3whIqk - adis
2个回答

59

一个简单的空值检查就足够了

URL u = MLM.class.getResource("/mazes.txt");
if (u != null) {
         ...
}

根据getResource的javadoc:

返回值:
如果找不到此名称的资源,则返回URL对象或null


3
对我来说没有用,但是 MLM.class.getResource("mazes.txt") 有效。 - Anthony
我需要一个绝对路径,就像这样 MLM.class.getResource("/mazes.txt") - akop
对我有用:URL resource = MyClassWithMainMethod.class.getResource("/myfile.xml"); - granadaCoder

0

在你的代码之前,你可以使用:

File.createNewFile()

如果尚未存在以此抽象路径名命名的文件,则原子性地创建一个新的空文件。检查文件是否存在以及在不存在时创建文件是一项单独的操作,与可能影响文件的所有其他文件系统活动具有原子性。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接