为什么在该路径中创建文件?

时间:2012-10-26 05:49:51

标签: java file file-io iostream

作为一个例子:

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文件的相同路径?  enter image description here

感谢。

3 个答案:

答案 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"));