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)
何か不足していますか?
ファイルを作成できるはずですが、ディレクトリを作成することはできません。ディレクトリを確認する必要があるかもしれませんC:\Users\Administrator\Desktop\work
が最初に存在します。
できるよ
Path parentDir = project.getFilePath().getParent();
if (!Files.exists(parentDir))
Files.createDirectories(parentDir);
デフォルトのOpenOptionsパラメーターが使用される場合、ファイルは書き込まれます。 CREATEを指定すると、デフォルトのパラメーターは使用されませんが、CREATEのみが使用されます。 CREATEに加えてWRITEを追加するか、そのパラメーターを空のままにしてください