Хорошо, я чувствую, что это должно быть легко, но очевидно пропускает что-то фундаментальное для файла, пишущего в Java. У меня есть это:
File someFile = new File("someDirA/someDirB/someDirC/filename.txt");
и я просто хочу записать в файл. Однако, в то время как someDirA существует, someDirB (и поэтому someDirC и filename.txt) не существуют. Выполнение этого:
BufferedWriter writer = new BufferedWriter(new FileWriter(someFile));
броски a FileNotFoundException
. Ну, er, никакое ребячество. Я пытаюсь создать его, в конце концов. Я должен разбить путь к файлу к компонентам, создать каталоги и затем создать файл прежде, чем инстанцировать объекта FileWriter?
Сначала вы должны создать все предыдущие каталоги. И здесь как это сделать. Вам нужно создать объект File , представляющий путь, по которому вы хотите существовать, а затем вызвать для него .mkdirs () . Затем убедитесь, что вы создали новый файл.
final File parent = new File("someDirA/someDirB/someDirC/");
if (!parent.mkdirs())
{
System.err.println("Could not create parent directories ");
}
final File someFile = new File(parent, "filename.txt");
someFile.createNewFile();
Вы можете использовать метод "mkdirs" в классе File в Java. mkdirs создаст ваш каталог, и создаст любые несуществующие родительские каталоги, если это необходимо.
http://java.sun.com/j2se/1.4.2/docs/api/java/io/File.html#mkdirs%28%29