【问题标题】:Why was the file created in that path?为什么在该路径中创建文件?
【发布时间】:2012-10-26 05:49:50
【问题描述】:

举个例子:

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

谢谢。

【问题讨论】:

标签: java file file-io iostream


【解决方案1】:

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

【讨论】:

  • 当我使用 System.setProperty("user.dir","c:\\xuhang"); 手动设置 user.dir 时为什么c:\\xuhang目录没有生成文件?也许我用这种方式测试是错误的。
  • 你不能通过设置user.dirchange the current working directory on java
【解决方案2】:

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

【讨论】:

    【解决方案3】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-18
      • 1970-01-01
      • 2011-02-17
      相关资源
      最近更新 更多