尝试写入文件时出现FileNotFound异常

时间:2010-03-29 21:30:59

标签: java file exception filenotfoundexception

好吧,我觉得这应该很容易,但显然缺少一些用Java编写文件的基础知识。我有这个:

File someFile = new File("someDirA/someDirB/someDirC/filename.txt");

我只想写信给文件。但是,虽然someDirA存在,但someDirB(因此someDirC和filename.txt)不存在。这样做:

BufferedWriter writer = new BufferedWriter(new FileWriter(someFile));

抛出FileNotFoundException。好吧,呃,不开玩笑。毕竟我正在努力创造它。我是否需要将文件路径分解为组件,创建目录,然后在实例化FileWriter对象之前创建文件?

2 个答案:

答案 0 :(得分:17)

您必须先创建所有前面的目录。 here是如何做到的。您需要创建一个表示您想要存在的路径的File对象,然后在其上调用.mkdirs()。然后确保create新文件。

final File parent = new File("someDirA/someDirB/someDirC/");
if (!parent.mkdirs())
{
   System.err.println("Could not create parent directories ");
}
final File someFile = new File(parent, "filename.txt");
someFile.createNewFile();

答案 1 :(得分:3)

您可以在Java中的File类上使用“mkdirs”方法。 mkdirs将创建您的目录,并在必要时创建任何不存在的父目录。

http://java.sun.com/j2se/1.4.2/docs/api/java/io/File.html#mkdirs%28%29