0

例如:

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文件的相同路径? 在此处输入图像描述

谢谢。

4

3 回答 3

6

因为在启动 JVM 时,您的项目的根目录是您当前的工作目录。您可以检查user.dir系统属性以查看您当前的工作目录。如果您访问没有前导斜杠 (Unix) 或驱动器说明符/反斜杠 (Windows) 的文件,则将相对于您当前的工作目录创建文件。

于 2012-10-26T05:51:22.960 回答
1

您没有提供完整路径 - 这意味着 File 构造函数将使用您的进程的当前目录。

于 2012-10-26T05:53:53.907 回答
0

您提供的路径将指向项目目录,只有当您想更改时,您也可以提及要生成文件的完整路径。

OutputStream os = new FileOutputStream(new File("c.txt"));

OutputStream os = new FileOutputStream(new File("D:\\c.txt"));
于 2012-10-26T05:55:56.463 回答