Bla*_*ary 6 java filesystems file-io
所以我对Java有一个奇怪的问题.
我正在读写文件,所以路径对我很重要.我希望所有文件都是从相对路径写入和读取的(即在我的类和java文件的其余部分的文件夹中).
我写这样的文件:
FileWriter fw = new FileWriter(outfile,true);
fw.write(data);
fw.close();
Run Code Online (Sandbox Code Playgroud)
outfile就像'out.txt'(即我们希望输出进入的文件的名称).
问题是,创建文件/home/me/而不是我的其他文件的路径.
难道我做错了什么?或者我怎样才能将文件存储在相关目录中?
FileWriter fw = new FileWriter("./" + outfile,true);
Run Code Online (Sandbox Code Playgroud)
要么
FileWriter fw = new FileWriter("~/" + outfile,true);
Run Code Online (Sandbox Code Playgroud)
我会试试.
工作目录是你运行程序的地方,即你调用 java YourClass 的地方,所以当你想写与正在执行的类相关的文件时,你必须知道当前目录并从那里附加相对路径,例如
因此,如果您有一个类 test.YourClass 并且您从源根目录运行该应用程序,即
java test.YourClass
您可以从 user.dir 系统属性和类包名称中找到类文件所在目录的绝对路径,如下所示:
public class YourClass {
public void printPath() {
String path = String.format("%s/%s", System.getProperty("user.dir"), this.getClass().getPackage().getName().replace(".", "/"));
System.out.println(path);
}
Run Code Online (Sandbox Code Playgroud)
}