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

2022-09-01 05:15:23

我正在尝试将文本输出到Java中的资源文件,如下所示:

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

但是由于尚未创建资源文件,因此我得到一个空指针异常。如果空白资源文件尚不存在,如何先创建该文件以避免此错误?


答案 1

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

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

From the javadoc for getResource

返回:
URL 对象,如果未找到具有此名称的资源,则返回 null


答案 2

您可以在代码之前使用:

File.createNewFile()

当且仅当具有此名称的文件尚不存在时,以原子方式创建一个由此抽象路径名命名的新空文件。检查文件是否存在以及创建文件(如果不存在)是单个操作,对于可能影响该文件的所有其他文件系统活动,该操作是原子的。