Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaServlet检查文件是否存在或创建它_Java_Servlets - Fatal编程技术网

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

JavaServlet检查文件是否存在或创建它,java,servlets,Java,Servlets,通过下面的检查,我得到一个错误。。。因为我试图加载一个不存在的文件。。。我怎样才能安全地进行这项检查 File file = new File(getClass().getResource("/file.xml").getFile()); if(file.exists()==false){ //CREATE THE FILE } else{ //UPDATE THE FILE } 如果您查看类的API。,您将看到如果该文件不存在,它将返回nu

通过下面的检查,我得到一个错误。。。因为我试图加载一个不存在的文件。。。我怎样才能安全地进行这项检查

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

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

    //CREATE THE FILE


    }

    else{

    //UPDATE THE FILE
    }

如果您查看
类的API。
,您将看到如果该文件不存在,它将返回null。因此,您只需执行以下操作:

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

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

如果您查看
类的API。
,您将看到如果该文件不存在,它将返回null。因此,您只需执行以下操作:

URL url = getClass().getResource("/file.xml");
if(url == null) {
    // File does not exist
}
else {
    // File exists
}
正如人们所说,您不能保证能够写入该目录中的文件,因此在写入时,请确保它位于外部位置。

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

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

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


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

错误来自代码的哪一部分?听起来这是第一行…我注意到你把这个问题标记为“servlet”。你能在这个问题上再扩展一点吗?此代码是否从扩展HttpServlet的类运行?它是从HttpServlet调用的……您从代码的哪一部分得到错误?听起来这是第一行…我注意到你把这个问题标记为“servlet”。你能在这个问题上再扩展一点吗?此代码是否从扩展HttpServlet的类运行?它是从HttpServlet调用的…好的。。。但是我怎么写呢???我不能使用File File=new文件(getClass().getResource(“/File.xml”).getFile();作为文件目的地,通常不能在类路径上创建文件,因为可能没有可操作的文件系统。此解决方案不正确。是的,一般情况下不能这样做。我认为如果他问起寻找/创建文件的问题,他所处的环境可能会发生这种情况。我不明白。。。如果文件不存在。。。如何在url路径上创建它?@usi:阅读答案和注释:url不一定指向文件。即使是这样,你也不能写这个URL。写入某个外部目录。不要使用Class.getResource()获取它,只需
新建文件(“/some/absolute/path/that/you/choosed”)
ok。。。但是我怎么写呢???我不能使用File File=new文件(getClass().getResource(“/File.xml”).getFile();作为文件目的地,通常不能在类路径上创建文件,因为可能没有可操作的文件系统。此解决方案不正确。是的,一般情况下不能这样做。我认为如果他问起寻找/创建文件的问题,他所处的环境可能会发生这种情况。我不明白。。。如果文件不存在。。。如何在url路径上创建它?@usi:阅读答案和注释:url不一定指向文件。即使是这样,你也不能写这个URL。写入某个外部目录。不要使用Class.getResource()获取它,只需
新建文件(“/some/absolute/path/that/you/choosed”)