【发布时间】:2017-09-14 13:44:55
【问题描述】:
所以,我之前基本上都使用 java.io.File。 但是现在,当切换到 java.nio.Path 时,我遇到了一些问题......
我使用它基本上是在我的程序启动和关闭时加载/保存文件。
我在多个地方使用它,但我将输入一个示例:
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)
【问题讨论】:
-
你能发布堆栈跟踪和抛出异常的行吗?
-
更新了帖子。