J'essaie d'écrire du texte dans un fichier en utilisant la méthode Files.write()
.
byte[] contents = project.getCode().getBytes(StandardCharsets.UTF_8);
try {
Files.write(project.getFilePath(), contents, StandardOpenOption.CREATE);
} catch (IOException ex) {
ex.printStackTrace();
return;
}
Selon l'API, si le fichier n'existe pas, il sera créé puis écrit dans.
Cependant, je reçois ceci:
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)
Suis-je en train de manquer quelque chose?
Vous devriez pouvoir créer un fichier, mais vous ne pouvez pas créer de répertoire. Vous devrez peut-être vérifier le répertoire C:\Users\Administrator\Desktop\work
existe en premier.
Tu peux faire
Path parentDir = project.getFilePath().getParent();
if (!Files.exists(parentDir))
Files.createDirectories(parentDir);
Le fichier sera écrit si le paramètre OpenOptions par défaut est utilisé. Si vous spécifiez CREATE, les paramètres par défaut ne seront pas utilisés, mais il sera utilisé uniquement CREATE. Essayez d'ajouter WRITE en plus de CREATE, ou laissez simplement ce paramètre vide