作为一个例子:
public class Hello {
public static void main(String[] args) {
try {
OutputStream os = new FileOutputStream(new File("c.txt"));
try {
os.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
为什么在当前项目的根路径中生成c.txt
,而不是java文件的相同路径?
感谢。
答案 0 :(得分:6)
因为启动JVM时项目的根目录是当前的工作目录。
您可以检查user.dir
系统属性以查看当前的工作目录。如果访问的文件没有前导斜杠(Unix)或驱动器说明符/反斜杠(Windows),则将相对于当前工作目录创建文件。
答案 1 :(得分:1)
您尚未提供完整路径 - 这意味着File构造函数将使用您的进程的当前目录。
答案 2 :(得分:0)
只有当您想要更改时,您提供的路径才会指向项目目录 你也可以提到要生成文件的完整路径。
OutputStream os = new FileOutputStream(new File("c.txt"));
OutputStream os = new FileOutputStream(new File("D:\\c.txt"));