Исключение FileNotFound при попытке записать в файл

Хорошо, я чувствую, что это должно быть легко, но очевидно пропускает что-то фундаментальное для файла, пишущего в 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?

8
задан Stevoisiak supports Monica 19 June 2017 в 07:55
поделиться

2 ответа

Сначала вы должны создать все предыдущие каталоги. И здесь как это сделать. Вам нужно создать объект 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();
17
ответ дан 5 December 2019 в 08:51
поделиться

Вы можете использовать метод "mkdirs" в классе File в Java. mkdirs создаст ваш каталог, и создаст любые несуществующие родительские каталоги, если это необходимо.

http://java.sun.com/j2se/1.4.2/docs/api/java/io/File.html#mkdirs%28%29

2
ответ дан 5 December 2019 в 08:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: