"Java Files.write вызывает NoSuchFileException: как решить проблему?"
Я пытаюсь записать текст в файл с помощью метода Files.write()
.
Код выглядит следующим образом:
byte[] contents = project.getCode().getBytes(StandardCharsets.UTF_8);
try {
Files.write(project.getFilePath(), contents, StandardOpenOption.CREATE);
} catch (IOException ex) {
ex.printStackTrace();
return;
}
Согласно документации API, если файл не существует, он должен быть создан, а затем в него записано.
Однако я получаю следующую ошибку:
java.nio.file.NoSuchFileException: C:\Users\Administrator\Desktop\work\Default.txt
at sun.nio.fs.WindowsException.translateToIOException(Unknown Source)
at sun.nio.fs.WindowsException.rethrowAsIOException(Unknown Source)
at sun.nio.fs.WindowsException.rethrowAsIOException(Unknown Source)
at sun.nio.fs.WindowsFileSystemProvider.newByteChannel(Unknown Source)
at java.nio.file.spi.FileSystemProvider.newOutputStream(Unknown Source)
at java.nio.file.Files.newOutputStream(Unknown Source)
at java.nio.file.Files.write(Unknown Source)
Неужели я что-то упустил?
2 ответ(ов)
Вы должны иметь возможность создать файл, но не можете создать директорию. Вам следует сначала убедиться, что директория C:\Users\Administrator\Desktop\work
существует.
Вы можете сделать это следующим образом:
Path parentDir = project.getFilePath().getParent();
if (!Files.exists(parentDir)) {
Files.createDirectories(parentDir);
}
Этот код проверяет, существует ли родительская директория для файла, и если нет, создаёт все недостающие директории в пути. Убедитесь, что у вас есть необходимые права доступа для выполнения этих операций.
Файл будет записан, если используется параметр OpenOptions по умолчанию. Если вы укажете только CREATE, параметры по умолчанию не будут применены. Попробуйте добавить WRITE в дополнение к CREATE, или просто оставьте этот параметр пустым.
Как создать строку Java из содержимого файла?
Как сохранить строку в текстовый файл с помощью Java?
Сохранение списка в файл с помощью Python с учетом переносов строк
Как прочитать большой текстовый файл построчно с помощью Java?
Чтение текстового файла в Java