通过以下检查,我得到一个错误...因为我尝试加载一个不存在的文件...我怎样才能安全地进行此检查?
File file = new File(getClass().getResource("/file.xml").getFile());
if(file.exists()==false){
//CREATE THE FILE
}
else{
//UPDATE THE FILE
}
Class.getResource()
使用类加载器返回WEB-INF/lib
webapp 目录中的 jar 中的资源 URL,或者在 webapp中的 jar 中WEB-INF/classes
。你不能也不能假设这是一个文件。一个 webapp 通常被部署为一个 war 文件。而且无论如何,这场战争的内容必须保持只读。
如果要写入文件,请使用 webapp 外部目录中的文件 IO。
如果您查看 的 API Class.
getResource()
,您会看到如果此文件不存在,它会返回 null。所以你只需要这样做:
URL url = getClass().getResource("/file.xml");
if(url == null) {
// File does not exist
}
else {
// File exists
}
正如人们所说,不能保证您能够写入该目录中的文件,因此当您写入时,请确保它是到外部位置。