Java Servlet检查文件是否存在或创建它

时间:2013-04-15 21:08:06

标签: java servlets

通过以下检查我收到错误...因为我尝试加载一个不存在的文件...我该如何安全地检查?

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

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

    //CREATE THE FILE


    }

    else{

    //UPDATE THE FILE
    }

2 个答案:

答案 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
}

正如人们所说,你无法保证能够写入该目录中的文件,因此在你写作时确保它是在外部位置。