したがって、以前はすべてのためにjava.io.Fileを使用していました。 しかし、java.nio.Pathに切り替えると、いくつかの問題が発生しています...Javaパス例外
私が使っているのは、プログラムの起動とシャットダウン時に基本的にファイルのロード/保存です。
私は複数の場所でそれを使用するが、私は例を入力します:
Objects.requireNonNull(directory, "directory");
if (this.myObjectMap.isEmpty()) {
return;
}
Files.list(directory).forEach(file -> {
try {
Files.deleteIfExists(file);
} catch (IOException exception) {
exception.printStackTrace();
}
});
Files.createDirectories(directory);
for (Object object : this.myObjectMap.values()) {
Path destination = directory.resolve(object.toString() + ".json");
Files.deleteIfExists(destination);
Files.createFile(destination);
JsonObject properties = new JsonObject();
JSONFileHandler.save(destination, properties);
}
私の問題は、私はこれに似た何かをするたびに、それもパスを使用する前に、NoSuchFileException例外をスローしていることです...しかし、パスを作成した後に存在するかどうかをチェックするので、私が間違っていることは分かりません。
更新
例外スタックトレースは以下の通りです:
java.nio.file.NoSuchFileException: **the directory**
at sun.nio.fs.WindowsException.translateToIOException(WindowsException.java:79)
at sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:97)
at sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:102)
at sun.nio.fs.WindowsDirectoryStream.<init>(WindowsDirectoryStream.java:86)
at sun.nio.fs.WindowsFileSystemProvider.newDirectoryStream(WindowsFileSystemProvider.java:518)
at java.nio.file.Files.newDirectoryStream(Files.java:457)
at java.nio.file.Files.list(Files.java:3451)
あなたが投げているスタックトレースラインを投稿できます例外? –
投稿を更新しました。 –