Тот факт, что каталог не существует, возможно, поэтому он не работает в первый раз.Как уже отмечалось, использование mkdirs () гарантирует, что файл, который вы хотите записать, находится в подпапках, и создает их.Теперь вот как это может выглядеть:
File file = new File( new File("c:/newDirectory"), Utilities.timeFormat() );
if( !file.getParentFile().exists() ) {
file.getParentFile().mkdirs();
}
OutputStream stream = new BufferedOutputStream( new FileOutputStream( file ) );
try {
// put your code here to write the file
} finally {
stream.close();
}
Обратите внимание, я не использую + для создания пути.Вместо этого я создаю объект File и передаю ему родительский файл и имя файла.Также обратите внимание, что я не помещаю разделители пути между родителем и именем файла.Использование конструктора файлов обеспечивает независимый от системы способ создания путей.