我正在尝试在特定目录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;
}
答案 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);
在使用文件之前,您不必预先创建文件。