我正在尝试用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
有谁知道文件绝对路径中导致此错误的原因是什么?
答案 0 :(得分:0)
您正在撰写的路径(以Users/
开头的路径)是而不是绝对路径:它没有根,所以它是相对路径。相对路径是相对于当前工作目录进行评估的。
要使其成为绝对路径,它需要一个前导/
。