java中实现创建目录与创建文件的操作实例
禺垣 人气:0一、创建目录
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这里就不生效了。
总结
加载全部内容