尝试使用Buffered Writer将文件保存在documents文件夹中不起作用

时间:2019-04-27 18:48:54

标签: java

我正在尝试将用户输入保存到.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();
            }
        }
    }

1 个答案:

答案 0 :(得分:0)

避免手动串联路径。它容易出错,并且您可能会弄乱由于不同的操作系统而引起的复杂性。

您已经在使用Java的Path API,该API具有使用varargs的便捷方法:Paths.get(String first, String... more)。因此,将其更改为:Paths.get(System.getProperty("user.home"), "ht", fileName)

现在,FileSystemViewSwing的api,它试图启动GUI并被卡住。我已将其替换为System.getProperty("user.home")

-更新-

如果该目录尚不存在:

    Path dir = Paths.get(System.getProperty("user.home"), "ht");
    if (!Files.exists(dir)) {
      Files.createDirectories(dir);
    }