我想用 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);
从 Java 1.7 开始,您可以使用 Files.createFile:
Path pathToFile = Paths.get("/home/joe/foo/bar/myFile.txt");
Files.createDirectories(pathToFile.getParent());
Files.createFile(pathToFile);
Path pathToFile = Paths.get("myFile.txt"); Files.createDirectories(pathToFile.getParent());
createDirectories
的@AndreNel JavaDoc 状态:与 createDirectory 方法不同,如果由于目录已经存在而无法创建目录,则不会引发异常。
使用 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);
使用 FileUtils 来处理所有这些令人头疼的问题。
编辑:例如,使用下面的代码写入文件,此方法将“检查并创建父目录,如果它不存在”。
openOutputStream(File file [, boolean append])
不定期副业成功案例分享
mkdirs
将不执行任何操作。