Java的createNewFile() – 它也会创build目录吗?

我有一个条件来检查在继续之前是否存在某个文件( ./logs/error.log )。 如果找不到,我想创build它。 但是,会的

 File tmp = new File("logs/error.log"); tmp.createNewFile(); 

还创buildlogs/如果它不存在?

没有。
在创build文件之前使用tmp.getParentFile().mkdirs()

 File theDir = new File(DirectoryPath); if (!theDir.exists()) theDir.mkdir(); 
 File directory = new File(tmp.getParentFile().getAbsolutePath()); directory.mkdirs(); 

如果目录已经存在,什么也不会发生,所以你不需要任何检查。

现在(> = 1.3)的StringUtils.touch(/path/filename.ext)也会创build目录和文件,如果它们不存在的话。