如何在特定目录中创建文本文件?

时间:2014-12-12 14:33:16

标签: java file-io mkdir

我正在尝试在特定目录SYS_CONFIG_FILE_NAME中创建文件SYS_CONFIG_DIR_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;
}

2 个答案:

答案 0 :(得分:2)

我会这样做,如果没有创建文件,你总是要调用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;

答案 1 :(得分:1)

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

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

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