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

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

现在dir1和dir2不存在了。我想让Java自动创建它们,如果它们还没有在那里。实际上,如果不存在,Java应该设置整个文件路径。

我怎样才能做到这一点呢?


当前回答

喜欢的东西:

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

其他回答

喜欢的东西:

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

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

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

openOutputStream(File file [, boolean append]) 

使用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()。

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

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