[英]Printing to file using PrintWriter in Java not working with filename
[英]Java PrintWriter to file (on a mac) not working
我已经在这里阅读了多个线程,但仍然找不到为什么PrintWriter
不打印到文件而是抛出java.io.FileNotFoundException
。 我检查了文件位置,检查了文件路径中的大写/小写。 有人可以告诉我我在做什么错:
File output = new File("/Users/<myname>/Documents/javaoutput.txt");
output.getParentFile().mkdir();
PrintWriter writer = new Printwriter(output);
您不在检查目标目录/Users/<myname>/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/<myname>
和/Users/<myname>/Documents
)。 您应确定程序无法创建目录时应采取的措施,并为该情况添加正确的代码。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.