【问题标题】:How to create a text file inside a specific directory?如何在特定目录中创建文本文件?
【发布时间】:2014-12-12 14:33:16
【问题描述】:

我正在尝试在特定目录 SYS_CONFIG_DIR_NAME 中创建文件 SYS_CONFIG_FILE_NAME。使用下面发布的代码,当我运行 java 程序时,它会在该目录中创建两个目录而不是一个目录和一个文本文件。

以下代码的输出是

SYS_CONFIG/config.txt. But `config.txt` is not a text file it is just a directory named `config.txt`

我还提到了 stackoverflow 中的一些问题,但我找不到解决方案。请让我知道我错过了什么?

代码

private final static String SYS_CONFIG_DIR_NAME = "SYS_CONFIG";
private final static String SYS_CONFIG_FILE_NAME = "config.txt";
private static File newSysConfigInstance() throws IOException {

    // TODO Auto-generated method stub
    File f =  new File(SYS_CONFIG_FILE_PATH + "/" + SYS_CONFIG_DIR_NAME + "/" + SYS_CONFIG_FILE_NAME);
    f.mkdirs();
    f.createNewFile();
    return f;
}

【问题讨论】:

    标签: java file-io mkdir


    【解决方案1】:

    我会这样做,如果未创建文件,您必须始终调用 createNewFile() 来创建文件的新实例。

    File dir =  new File(SYS_CONFIG_FILE_PATH, SYS_CONFIG_DIR_NAME);
    f.mkdirs(); // this to create the directories need for your path.
    File file = new File(dir, SYS_CONFIG_FILE_NAME);
    if (file.createNewFile()) {
       system.out.prinln("file first created"); 
       }else {
       // print a message here
       }
       return file;
    

    【讨论】:

      【解决方案2】:

      如果你想要一个a/b 形式的目录,你告诉它创建一个a/b/c 形式的目录,那么你应该给它你想要它创建的目录。

      File dir =  new File(SYS_CONFIG_FILE_PATH, SYS_CONFIG_DIR_NAME);
      f.mkdirs();
      return new File(dir, SYS_CONFIG_FILE_NAME);
      

      您不必在使用文件之前预先创建文件。

      【讨论】:

      • 我想你忘记了“f.createNewFile();”在 return 语句之前和之后 .mkdirs()
      猜你喜欢
      • 2013-04-15
      • 2019-11-16
      • 1970-01-01
      • 2021-01-13
      • 2018-07-17
      • 2021-08-31
      • 1970-01-01
      • 2012-01-13
      • 1970-01-01
      相关资源
      最近更新 更多