一、创建目录
mkdir()——仅创建一层目录,返回true或false.
mkdirs()——创建一层或多层目录,返回true或false.
也就是,在通常情况下,使用mkdirs()即可满足创建目录的需求。
如,
File file = new File("D:\\myLevel1\\myLevel2"); //以某路径实例化一个File对象
if (!file.exists()){ //如果不存在
boolean dr = file.mkdirs(); //创建目录
}
即在D盘根目录下创建了myLevel1、myLevel2两层目录。
二、创建文件
createNewFile()——当File对象实例化的路径中,上面各层目录均已存在,最后一层目录不存在时,以最后一层目录名为名称创建文件。返回true或false.
如,
File file = new File("D:\\myLevel1\\myLevel2\\abc.txt"); //实例化File对象
try {
boolean fr = file.createNewFile(); //创建文件
}catch (Exception e){
e.printStackTrace();
}
即在D:\myLevel1\myLevel2下创建了一个abc.txt文件。
三、同时创建目录和文件
getParent()——得到路径的父级及以上的目录,String类型。
getParentFile()——得到路径的父级及以上的目录实例化的File对象。
先使用getParentFile().mkdirs()创建目录,再使用createNewFile()创建文件,如,
File file = new File("D:\\myLevel1\\myLevel2\\abc.txt"); //实例化File对象
boolean dr = file.getParentFile().mkdirs(); //创建目录
try {
boolean fr = file.createNewFile(); //创建文件
}catch (Exception e){
e.printStackTrace();
}
即在D盘下创建了myLevel1、myLevel2两层目录和abc.txt文件。
补充知识:getParentFile()方法和getParent()的区别
getParentFile()方法返回的是File类型的值,而getParent()返回的是字符串类型的值,根据你想获得的值来区别使用,而exists()方法和mkdirs()方法是getParentFile()返回的File类型里面的方法,exists()方法是查看有没有此路径或者文件,mkdirs()方法是若没有此路径用来创建的
//若是有重名文件就会加后缀
String newfilename=filename;
int i=1;
if(descFile.exists()){
newfilename=name+"("+i+")"+suffix;
String parentPath=descFile.getParent();
descFile=new File(parentPath+File.separator+newfilename);
i++;
}
//判断目录是否存在
if(!descFile.getParentFile().exists()){
//如果目标文件所在目录不存在,则创建父目录
descFile.getParentFile().mkdirs();
}
mkdir与mkdirs的区别
项目中需要在代码中读取或创建文件保存路径,用到了mkdir,查看还有个mkdirs方法,这里记录一下两者的区别。
1、关于两者的说明如下:
- boolean mkdir() : 创建此抽象路径名指定的目录。
- boolean mkdirs() : 创建此抽象路径名指定的目录,包括创建必需但不存在的父目录。
2、结合自己的理解及具体实践如下:
mkdir():只能创建一层目录, 如:
File file = new File("e:/test");
file.mkdir();
这样会在e:/路径下创建test目录.
mkdirs(): 创建多层目录,如:
File file = new File("e:/test/0930");
file.mkdirs();
这样才能在e:/test/路径下创建0930目录,mkdir这里就不生效了。
总结
到此这篇关于java中实现创建目录与创建文件操作的文章就介绍到这了,更多相关java创建目录与创建文件内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!