Java-файл.написать исключение 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:UsersAdministratorDesktopworkDefault.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 ответов
вы должны иметь возможность создать файл, но вы не можете создать каталог. Возможно, Вам потребуется проверить каталог первый.
можно сделать
Path parentDir = project.getFilePath().getParent();
if (!Files.exists(parentDir))
Files.createDirectories(parentDir);
файл будет записан, если используется параметр OpenOptions по умолчанию. Если вы укажете CREATE, параметры по умолчанию не будут использоваться, а будут использоваться только CREATE. Попробуйте добавить WRITE в дополнение к CREATE или просто оставьте этот параметр пустым