好吧,我觉得这应该很容易,但显然缺少一些用Java编写文件的基础知识。我有这个:
File someFile = new File("someDirA/someDirB/someDirC/filename.txt");
我只想写信给文件。但是,虽然someDirA存在,但someDirB(因此someDirC和filename.txt)不存在。这样做:
BufferedWriter writer = new BufferedWriter(new FileWriter(someFile));
抛出FileNotFoundException
。好吧,呃,不开玩笑。毕竟我正在努力创造它。我是否需要将文件路径分解为组件,创建目录,然后在实例化FileWriter对象之前创建文件?
答案 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