写入新文件时自动创建整个路径

时间:2010-05-14 11:50:08

标签: java path directory filewriter

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

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

现在dir1dir2目前不存在。我希望Java自动创建它们,如果它们还没有存在的话。实际上,Java应该设置整个文件路径(如果尚未存在)。

我怎样才能做到这一点?

5 个答案:

答案 0 :(得分:380)

类似的东西:

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

答案 1 :(得分:121)

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

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

答案 2 :(得分:26)

使用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);

答案 3 :(得分:15)

使用File.mkdirs()

答案 4 :(得分:3)

使用FileUtils来解决所有这些问题。

编辑:例如,使用下面的代码写入文件,此方法将“检查并创建父目录(如果它不存在)”。

openOutputStream(File file [, boolean append])