使用File类创建 遍历 删除目录与文件
电脑中存储的图片、电影、动画、资料等都是以文件方式存储的,当编写需要存储和读取文件的程序时,就需要程序支持对文件的操作。文件操作包括文件的创建与删除、读取与写入、遍历与查找。本节主要介绍文件的创建与删除、遍历与查找操作。
文件一般都存储在磁盘中,磁盘中的文件以目录树的方式组织起来,每一个目录就是一个存储文件的集合,目录下面又有子目录,形成层级目录树。当打开电脑查看某一盘符时,会看到盘符下有目录也有文件,其实盘符本身就是一个根目录,因此盘符下面既有目录也有文件。
Java把对文件和目录的操作都封装在Java.io包中,当程序需要对文件进行操作时,需要导入Java.io包到程序项目中。Java.io包提供了一个File类,用于文件和目录的创建、查找、遍历和删除。
1、用File类新建目录
File类提供了多个方法用于创建一个新的目录,分别说明如下:
● boolean mkdir()
该方法可以创建一个单级目录,目录路径在实例化File类时传入,如果目录路径包含父目录且该父目录不存在时,目录创建失败。目录创建成功返回true,创建失败返回false。
● boolean mkdirs()
该方法可以创建多级目录,目录路径在实例化File类时传入,如目录路径包含父目录且该父目录不存在时,该方法也同时创建其父目录。目录创建成功返回true,创建失败返回false。
下面的例子演示了如何应用File类创建一个新的目录。
代码分别用mkdir()和mkdirs()创建目录,mkdir()和mkdirs()不同之处是mkdir()只能创建单级目录,mkdirs()可以创建多级目录。mkdirs()方法创建的目录路径为“c:/java/print/data/src”,该路径包含多个目录,且其中的print、data、src目录都不存在,用mkdirs()可以成功创建print、data、src目录,如果用mkdir()则创建失败。
程序输出结果如下图所示:
2、用File类删除目录
File类也提供了删除目录的操作,分别说明如下:
● boolean delete()
该方法用于删除文件或者一个空目录,空目录是指不包含任何内容的目录,删除成功返回true,否则返回false。
下面的例子演示了如何应用File类删除一个目录。
代码删除“c:/java”目录,如果该目录下有子目录或文件,则删除失败。同理,该方法也可以用于删除文件。
3、用File类创建文件
File类提供了createNewFile和createTempFile方法用来创建文件,分别说明如下:
● boolean createNewFile ()
该方法用于创建一个新的空文件,文件存储路径由实例化File类时传入的路径指定,当路径指定的文件存在时,文件创建失败。当文件存储路径所在目录不存在时,文件也会创建失败。
● boolean createTempFile(String prefix, String suffix, File directory)
该方法用于创建临时文件,可以指定临时文件的文件名前缀、后缀及文件所在的目录,如果不指定目录,则存放在系统的临时文件夹下。
下面的例子演示了如何应用File类创建一个新的文件。
代码在用createNewFile()在c:/java目录下创建config.txt文件。如果c:/java目录不存在,则抛出异常。如下图所示:
在C盘下建立java目录,再执行该程序,文件创建成功。
4、用File类删除文件
用File类删除文件,同样也是用delete方法。不过在删除文件之前,最好判断一下该文件是否存在,否则会抛出异常。代码如下:
5、用File类遍历目录和文件
File类提供了list和listFiles方法用于获取指定目录下的文件和目录。
● File[] listFiles ()
该方法用于返回某个目录下所有文件和目录的File对象,返回的是File对象数组。
● String[] list ()
该方法用于返回某个目录下的所有文件和目录的文件名,返回的是String数组。
应用递归方法遍历指定目录下的所有子目录和文件,代码如下:
代码应用递归技术遍历指定目录下的子目录和文件,输出结果如下图所示:
■ 知识点拨
使用File类可以创建、删除、遍历目录及文件,但不能用于读写文件。