Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.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
使用java.io.file在文件系统上创建文件_Java_File_Properties File - Fatal编程技术网

使用java.io.file在文件系统上创建文件

使用java.io.file在文件系统上创建文件,java,file,properties-file,Java,File,Properties File,我正在尝试使用java.io.file在文件系统上创建一个空的.properties文件 我的代码是: File newFile = new File(new File(".").getAbsolutePath() + "folder\\" + newFileName.getText() + ".properties"); if (newFile.createNewFile()){ //do sth... } 它说不可能找到指定的路径。 打印文件的构造函数参数时,它会正确显示绝对路径

我正在尝试使用java.io.file在文件系统上创建一个空的.properties文件

我的代码是:

File newFile = new File(new File(".").getAbsolutePath() + "folder\\" + newFileName.getText() + ".properties");

if (newFile.createNewFile()){
    //do sth...
}
它说不可能找到指定的路径。 打印文件的构造函数参数时,它会正确显示绝对路径

出什么问题了?

我认为“.”操作员可能是导致错误的原因。不确定您在那里试图做什么,可能误解了您的意图,但请尝试以下操作:

File newFile = new File(new File("folder\\").getAbsolutePath() + ".properties"); 
  • 您可以使用
    新建文件(“folder”,newFileName.getText()+“.properties”)
    来创建相对于当前工作目录的
    文件夹中指定文件的文件引用
  • 在调用
    createNewFile
    之前,您应该确保该目录存在,因为它不会为您执行此操作
  • 例如

    File newFile = new File("folder", newFileName.getText() + ".properties");
    File parentFile = newFile.getParentFile();
    if (parentFile.exists() || parentFile.mkdirs()) {
        if (!newFile.exists()) {
            if (newFile.createNewFile()){
                //do sth...
            } else {
                throw new IOException("Could not create " + newFile + ", you may not have write permissions or the file is opened by another process");
            }
        }
    } else {
        throw new IOException("Could not create directory " + parentFile + ", you may not have write permissions");
    }
    

    我忽略了
    新文件(“.”)。getAbsolutePath()
    返回项目的绝对路径,最后带有
    ,因此我的
    文件夹可以称为
    。文件夹
    。下次我会检查两次。

    1-您可以使用
    新文件(“文件夹”,newFileName.getText()+“.properties”)
    将文件存储在相对于当前位置的
    文件夹中;2.确保路径存在,因为它不会由
    createNewFile
    为您创建(您可以使用
    newFile.getParentFile().mkdirs()
    )非常感谢,它可以工作!在任何情况下,我都会采用您的更干净的解决方案-但是-为什么我的解决方案不起作用呢?我真的不知道,有这么多的上下文缺失,但是从
    新文件(“.”)开始。getAbsolutePath()+“folder\\\”
    在“.”和“folder”之间没有分隔符,因此您以“.folder”代替(填写绝对路径而不是“.”,但你明白了)你检查了目标目录的写入权限了吗?那是。。。我没想到会有这么琐碎的事。谢谢你!不,它没有,您可以使用
    新文件(“.”
    为当前工作目录创建文件引用,就像
    新文件(“文件夹”)
    将创建一个
    文件
    引用,引用当前工作目录中名为
    文件夹
    的文件/目录