0

通过以下检查,我得到一个错误...因为我尝试加载一个不存在的文件...我怎样才能安全地进行此检查?

File file = new File(getClass().getResource("/file.xml").getFile());

if(file.exists()==false){

    //CREATE THE FILE


    }

    else{

    //UPDATE THE FILE
    }
4

2 回答 2

3

Class.getResource()使用类加载器返回WEB-INF/libwebapp 目录中的 jar 中的资源 URL,或者在 webapp中的 jar 中WEB-INF/classes。你不能也不能假设这是一个文件。一个 webapp 通常被部署为一个 war 文件。而且无论如何,这场战争的内容必须保持只读。

如果要写入文件,请使用 webapp 外部目录中的文件 IO。

于 2013-04-15T21:16:25.977 回答
0

如果您查看 的 API Class.getResource(),您会看到如果此文件不存在,它会返回 null。所以你只需要这样做:

URL url = getClass().getResource("/file.xml");
if(url == null) {
    // File does not exist
}
else {
    // File exists
}

正如人们所说,不能保证您能够写入该目录中的文件,因此当您写入时,请确保它是到外部位置。

于 2013-04-15T21:13:09.360 回答