2014-12-12 3 views
2

Я пытаюсь создать файл 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

Я бы сделал так, вы всегда должны позвонить 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

Вы говорите это, чтобы сделать каталог в виде 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); 

Нет необходимости в предварительном создании файлов перед их использованием.

+2

Я думаю, вы забыли «f.createNewFile();» перед возвратным заявлением и после .mkdirs() – LetsamrIt