【问题标题】:Java PrintWriter to file (on a mac) not workingJava PrintWriter 到文件(在 Mac 上)不起作用
【发布时间】:2014-11-12 16:16:11
【问题描述】:

我已经阅读了这里的几个线程,但仍然无法找出为什么 PrintWriter 没有打印到文件而是抛出 java.io.FileNotFoundException。我检查了文件位置,检查了文件路径中的大写/小写。谁能告诉我我做错了什么:

    File output = new File("/Users/<myname>/Documents/javaoutput.txt");
    output.getParentFile().mkdir();

    PrintWriter writer = new Printwriter(output);

【问题讨论】:

  • 异常信息说明了什么?向我们展示完整的堆栈跟踪。

标签: java macos file-io printwriter


【解决方案1】:

您不是在检查目标目录/Users/&lt;myname&gt;/Documents 是否存在或创建它的尝试是否成功。如果目标目录不存在,new PrintWriter() 将抛出 FileNotFoundException

这样的事情可能会更好:

File output = new File("/Users/<myname>/Documents/javaoutput.txt");
File dir = output.getParentFile();
if (!dir.isDirectory() && !dir.mkdirs()) {
    // handle could not create directory
    throw new SomeException("Could not create target directory '" + dir + "'");
}
PrintWriter writer = new Printwriter(output);

如有必要,我在这里使用mkdirs() 而不是mkdir() 来创建整个目录路径(/Users/Users/&lt;myname&gt;/Users/&lt;myname&gt;/Documents)。您应该决定您的程序在无法创建目录时应该做什么,并为这种情况添加正确的代码。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-04
    • 1970-01-01
    相关资源
    最近更新 更多