File类的createNewFile()和mkdirs() mkdir()

Posted renjiaqi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了File类的createNewFile()和mkdirs() mkdir()相关的知识,希望对你有一定的参考价值。

createNewFile文件不存在则创建,存在则不创建并返回false,文件路径必须存在才可创建路径下的文件(注意它只能创建文件,即如果你给了/storage/emulated/0/hello/snow/这样一个路径,它最后也只是在hello文件夹中创建了snow的未知文件而不是文件夹,如上所述的创建成功的前提还是要/storage/emulated/0/hello/这样的文件夹路径存在,如果只有/storage/emulated/0这样的文件夹路径,它是不能够创建hello文件夹的,所以创建失败) 

 

mkdirs()和mkdirs()专门用来创建文件夹的,不存在则创建返回true,存在则返回false,区别在于mkdirs可以creating missing parent directories if necessary.同样的路径为/storage/emulated/0/hello/snow.bin也只是在hello文件夹啊下创建了snow.bin文件夹而不是文件。

 

所以一般需要createNewFile()和mkdirs()结合使用,先创建文件夹再创建文件。

File file = new File(filePath);
if (!file.exists())
file.getParentFile().mkdirs();
file.createNewFile();



mkdir:只能用来创建文件夹,且只能创建一级目录,如果上级不存在,就会创建失败。
mkdirs:只能用来创建文件夹,且能创建多级目录 ,如果上级不存在,就会自动创建。(创建文件夹多用此)
createNewFile:只能用来创建文件,且只能在已存在的目录下创建文件,否则会创建失败。(FileOutputStream os=new FileOutputStream(file)也可创建文件,看情况使用)

以上是关于File类的createNewFile()和mkdirs() mkdir()的主要内容,如果未能解决你的问题,请参考以下文章

createNewFile和createTempFile

createNewFile()和createTempFile()

java创建文件和目录

Java创建文件new file(string 参数)与file.createNewFile()

关于Android file.createNewFile() 失败的问题

JavaFile