270

我想用FileWriter. 我这样使用它:

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

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

我怎样才能做到这一点?

4

5 回答 5

460

就像是:

File file = new File("C:\\user\\Desktop\\dir1\\dir2\\filename.txt");
file.getParentFile().mkdirs();
FileWriter writer = new FileWriter(file);
于 2010-05-14T11:53:41.057 回答
164

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

Path pathToFile = Paths.get("/home/joe/foo/bar/myFile.txt");
Files.createDirectories(pathToFile.getParent());
Files.createFile(pathToFile);
于 2013-10-18T21:43:40.093 回答
32

使用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);
于 2010-05-14T11:53:30.397 回答
18

使用File.mkdirs().

于 2010-05-14T11:53:13.990 回答
4

使用FileUtils来处理所有这些令人头疼的问题。

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

openOutputStream(File file [, boolean append]) 
于 2013-04-11T09:23:21.877 回答