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