我正在尝试将用户输入保存到.txt文件中,该文件应该存储在documents文件夹中名为“ ht”的文件夹中,但事实并非如此。 注意:当我直接保存到documents文件夹时,文件将被保存。
这里是我的代码:
public void saveUserData() throws IOException {
// Path path = Paths.get(filename);
Path path = Paths.get(FileSystemView.getFileSystemView().getDefaultDirectory().getPath()+"\\"+"ht"+"\\"+filename);
BufferedWriter bw = Files.newBufferedWriter(path);
try {
Iterator<FormInput> iter = dataItems.iterator();
while (iter.hasNext()) {
FormInput item = iter.next();
bw.write(String.format("%s\t%s",
item.getUserName(),
item.getPassword()));
bw.newLine();
}
} finally {
if (bw != null) {
bw.close();
}
}
}
答案 0 :(得分:0)
避免手动串联路径。它容易出错,并且您可能会弄乱由于不同的操作系统而引起的复杂性。
您已经在使用Java的Path
API,该API具有使用varargs的便捷方法:Paths.get(String first, String... more)
。因此,将其更改为:Paths.get(System.getProperty("user.home"), "ht", fileName)
现在,FileSystemView
是Swing
的api,它试图启动GUI并被卡住。我已将其替换为System.getProperty("user.home")
。
-更新-
如果该目录尚不存在:
Path dir = Paths.get(System.getProperty("user.home"), "ht");
if (!Files.exists(dir)) {
Files.createDirectories(dir);
}