一、File类的特点:File类是文件和目录路径名的抽象表现形式,其具备一下特点:
1、用来将文件或文件夹封装成对象
2、方便于对文件与文件夹的属性信息进行操作
3、File类的实例是不可变的;也就是说,一旦创建,File 对象表示的抽象路径名将永不改变
4、File对象可以作为参数传递给流的构造函数
二、创建文件
1、File对象创建三种方式:
方式一:File f1 = new File("a.txt");
方式二:File f2 = new File("c:\\abc","b.txt");
方式三:File d = new File("C:\\abc");
File f3 = new File(d,"c.txt");
三、File类的常见方法
1、创建
boolean createNewFile():在指定位置创建文件,如果该文件已经存在,则不创建,返回false。和输出流不一样,输出流对象一建立文件,而且文件已经存在,会覆盖。
File f = new File(“file.txt”);
f.createNewFile();
boolean mkdir():创建文件夹,
boolean mkdirs():创建多级目录
2、删除
boolean delete();发生异常时,文件有时候不能被删除。删除失败返回false。
deleteOnExit();在程序退出的时候删除文件。
3、判断
boolean exists(); 文件是否存在。
boolean isDirectory();是否是目录
boolean isFile();是否是文件
注意:判断文件对象是否是文件或者目录时,必须先判断该文件对象封装的内容是否存在。
boolean isHidden();是否隐藏。
4、获取信息
getName();
getPath(); 创建时是什么路径就是什么路径
getParent();
getAbsolutePath();不管创建什么路径,获取的都是绝对路径。
loog lastModified();返回上次修改文件的时间。
loog Length();返回文件大小。
四、递归
一个过程或函数自身调用自身的方法叫做递归。递归的三个条件:
A、边界条件 (要注意递归次数,尽量避免内存溢出)
B、递归前进段
C、递归返回段
注意:当边界条件不满足时,递归前进;当边界条件满足时,递归返回。
示例:展示指定目录下的所有文件及文件夹
import java.io.File;
public class FileTest2
{
public static void main(String[] args)
{
File dir = new File("E:\\360Downloads");
showDir(dir);
}
public static void showDir(File dir)
{
//列出所有的目录
System.out.println(dir);
//列出所有目录下的文件
File[] files = dir.listFiles();
for (int i = 0; i < files.length; i++)
{
//如果还是目录,再次调用本功能,即函数自身调用自身
if (files[i].isDirectory())
{
showDir(files[i]);
}
System.out.println(files[i]);
}
}
}