Java的createNewFile() - 它还会创建目录吗?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java的createNewFile() - 它还会创建目录吗?相关的知识,希望对你有一定的参考价值。
我有条件在继续之前检查某个文件是否存在(./logs/error.log
)。如果找不到,我想创建它。但是,会的
File tmp = new File("logs/error.log");
tmp.createNewFile();
如果它不存在,还会创建logs/
?
答案
没有。
在创建文件之前使用tmp.getParentFile().mkdirs()
。
另一答案
File theDir = new File(DirectoryPath);
if (!theDir.exists()) theDir.mkdirs();
另一答案
File directory = new File(tmp.getParentFile().getAbsolutePath());
directory.mkdirs();
如果目录已经存在,则不会发生任何事情,因此您不需要任何检查。
另一答案
Java 8风格
Path path = Paths.get("logs/error.log");
Files.createDirectories(path.getParent());
写入文件
Files.write(path, "Log log".getBytes());
阅读
System.out.println(Files.readAllLines(path));
完整的例子
public class CreateFolderAndWrite {
public static void main(String[] args) {
try {
Path path = Paths.get("logs/error.log");
Files.createDirectories(path.getParent());
Files.write(path, "Log log".getBytes());
System.out.println(Files.readAllLines(path));
} catch (IOException e) {
e.printStackTrace();
}
}
}
另一答案
StringUtils.touch(/path/filename.ext)
现在(> = 1.3)也会创建目录和文件(如果它们不存在)。
另一答案
不,如果logs
不存在,你会收到java.io.IOException: No such file or directory
android devs的有趣事实:调用Files.createDirectories()
和Paths.get()
之类的东西在支持min api 26时会起作用。
以上是关于Java的createNewFile() - 它还会创建目录吗?的主要内容,如果未能解决你的问题,请参考以下文章
Java创建文件new file(string 参数)与file.createNewFile()
Java File createNewFile创建文件包含多层级目录报错
Java File createNewFile创建文件包含多层级目录报错
Android的createNewFile()报错提示:java.io.IOException: No such file or directory