无法从其绝对地址创建文件

时间:2018-02-14 12:46:05

标签: java file

我正在尝试用Java创建 config.properties 文件,以便存储数据库详细信息。我尝试这样做的方法是创建一个 config.properties 文件:

public ConfigurationFile() {
    File configFile = getConfigFile();
    System.out.println("Path is \n" + configFile.getAbsolutePath() + "\n");
    System.out.println();
    if (!configFile.exists()) {
        try {
            configFile.createNewFile();
            createConfigFile();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return;
    }
}

但是,程序在尝试运行createNewFile()方法时失败:

Java.io.IOException: No such file or directory
at java.io.UnixFileSystem.createFileExclusively(Native Method)
at java.io.File.createNewFile(File.java:1012)
at me.pabloestrada.beargameconfiguration.ConfigurationFile.<init>(ConfigurationFile.java:43)

我认为发生这种情况的原因是地址无效。我从这些获取File对象:

private File getConfigFile() {
    System.out.println("The execution path is \n" + getPath());
    System.out.println();
    return new File(getPath());
}

private String getPath() {
    return getExecutionPath() + "config.properties";
}

我调试了并且getPath()返回以下地址:

The execution path is 
Users/myuser/....../bearwar/target/config.properties

哪个是对的。但是,当我运行configFile.getAbsolutePath()时,地址似乎不正确:

Path is 
/Users/myuser/Users/myuser/......./bearwar/target/config.properties

有谁知道文件绝对路径中导致此错误的原因是什么?

1 个答案:

答案 0 :(得分:0)

您正在撰写的路径(以Users/开头的路径)是而不是绝对路径:它没有根,所以它是相对路径。相对路径是相对于当前工作目录进行评估的。

要使其成为绝对路径,它需要一个前导/