У меня есть каталог с некоторыми файлами в нем.
У меня есть набор тестов junit, который тестирует некоторые операции, которые записывают, редактируют и удаляют эти файлы.
Я хочу сохранить содержимое файлов перед запуском тестов и восстановить их после.
Я пытаюсь сделать это, скопировав файлы в другой каталог перед запуском тестов и скопировав их обратно после.
поэтому у меня есть следующий код в тестовом методе @beforeClass:
File repDir = new File("/home/hamster339/Documents/Projects/Piping_Tune_List/Repertoire");
if (repDir.exists()){
for (File f: Objects.requireNonNull(repDir.listFiles())) {
Scanner r = new Scanner(f);
FileWriter w = new FileWriter(String.format("/home/hamster339/Documents/Projects/Piping_Tune_List/temp/%s",f.getName()));
while (r.hasNextLine()){
w.write(r.nextLine());
}
w.close();
r.close();
}
}
Однако это дает мне следующую ошибку:
java.io.FileNotFoundException: /home/hamster339/Documents/Projects/Piping_Tune_List/temp/Learnt.prl (No such file or directory)
Насколько я понимаю, эта ошибка указывает на то, что у меня нет разрешения на запись. .write() должен создать новый файл, если он еще не существует.
использование File.canwrite() подтверждает это, возвращая false.
Запись прекрасно работает в основной программе, и я также могу создавать новые каталоги, просто не записывая и не создавая файлы.
поэтому мой вопрос: почему я не могу писать в файлы в тестах, когда в основном коде все работает нормально?
@talex О да, кажется, это сработало. благодарю вас! Я думал, что он тоже создал каталог, если он не существует, не знаю, откуда я это взял




Похоже, мне просто нужно было создать новые каталоги, прежде чем я пытался писать в них файлы. Глупая ошибка.
Ваш ответ может быть улучшен с помощью дополнительной вспомогательной информации. Пожалуйста, отредактируйте , чтобы добавить дополнительные сведения, такие как цитаты или документация, чтобы другие могли подтвердить правильность вашего ответа. Вы можете найти больше информации о том, как писать хорошие ответы в справочном центре.
Вы уверены, что родительская папка для этого файла существует?