写入新文件时自动创build整个path

我想用FileWriter写一个新的文件。 我这样使用它:

 FileWriter newJsp = new FileWriter("C:\\user\Desktop\dir1\dir2\filename.txt"); 

现在dir1dir2目前不存在。 我想让Java自动创build它们,如果它们不在那里的话。 实际上,Java应该build立整个文件path,如果还不存在的话。

我怎样才能做到这一点?

就像是:

 File file = new File("C:\\user\\Desktop\\dir1\\dir2\\filename.txt"); file.getParentFile().mkdirs(); FileWriter writer = new FileWriter(file); 

从Java 1.7开始,您可以使用Files.createFile:

 Path pathToFile = Paths.get("/home/joe/foo/bar/myFile.txt"); Files.createDirectories(pathToFile.getParent()); Files.createFile(pathToFile); 

使用File.mkdirs()

 File dir = new File("C:\\user\\Desktop\\dir1\\dir2"); dir.mkdirs(); File file = new File(dir, "filename.txt"); FileWriter newJsp = new FileWriter(file); 

使用File.mkdirs()

使用FileUtils来处理所有这些问题。

编辑:例如,使用下面的代码写入一个文件,这个方法将'检查并创build父目录,如果它不存在'。

 openOutputStream(File file [, boolean append])