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

Creating file on filesystem with java.io.File

我正在尝试使用 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"); 
  1. 您可以使用 new File("folder", newFileName.getText() + ".properties"),它将在相对于当前工作目录的 folder 目录中创建对指定文件的文件引用
  2. 在调用 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");
}

我很简单地错过了 new File(".").getAbsolutePath() returns 项目的绝对路径,最后是 . 所以我的 folder 应该被称为 .folder。下次我会检查两次。