我正在尝试以Java的方式将文本输出到资源文件,代码如下:
File file = new File(MLM.class.getClassLoader().getResource("mazes.txt").toString());
BufferedWriter out = new BufferedWriter(new FileWriter(file));
..
但是由于资源文件还未被创建,我会得到一个空指针异常。如果资源文件不存在,我该如何先创建一个空的资源文件来避免这个错误呢?
我正在尝试以Java的方式将文本输出到资源文件,代码如下:
File file = new File(MLM.class.getClassLoader().getResource("mazes.txt").toString());
BufferedWriter out = new BufferedWriter(new FileWriter(file));
..
但是由于资源文件还未被创建,我会得到一个空指针异常。如果资源文件不存在,我该如何先创建一个空的资源文件来避免这个错误呢?
一个简单的空值检查就足够了
URL u = MLM.class.getResource("/mazes.txt");
if (u != null) {
...
}
根据getResource的javadoc:
返回值:
如果找不到此名称的资源,则返回URL对象或null
MLM.class.getResource("/mazes.txt")
。 - akop在你的代码之前,你可以使用:
如果尚未存在以此抽象路径名命名的文件,则原子性地创建一个新的空文件。检查文件是否存在以及在不存在时创建文件是一项单独的操作,与可能影响文件的所有其他文件系统活动具有原子性。