java中实现创建目录与创建文件的操作实例

 

一、创建目录

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创建目录与创建文件内容请搜索编程宝库以前的文章,希望以后支持编程宝库

一问道StringBuffer与StringBuilder的区别,张口就来StringBuffer是线程安全的,因为它相关方法都加了synchronized 关键字,S ...