Java基础知识章节梳理(十九)
文字数:约1100字 阅读时间:25分钟
此文章为学习总结类型,文字很多且皆为基础知识
一. File类
1. 介绍
1) File类是文件和目录路径名的抽象表示形式。(描述文件和文件夹的类)
2) Java 中把文件或者目录(文件夹)都封装成 File 对象。
3) 抽象路径名(可以理解为File对象)组成
1.一个可选的与系统有关的前缀字符串,比如盘符,"/"表示UNIX中的根目录
2.零个或更多字符串名称的序列
4) 抽象路径名的具体体现形式
1. 绝对路径名
从盘符开始的路径名就是绝对路径
2. 相对路径名
以某个参考物为参考的路径,就是相对路径,在Eclipse中默认以工程为参考物
2. 构造方法
1) File(File parent, String child)
根据 parent 抽象路径名和 child 路径名字符串创建一个新 File 实例。
2) File(String pathname)
通过将给定路径名字符串转换为抽象路径名来创建一个新 File 实例。
3) File(String parent, String child)
根据 parent 路径名字符串和 child 路径名字符串创建一个新 File 实例。
3. 常用成员方法
3.1获取方法
getAbsolutePath()
返回此File对象的绝对路径名字符串。
getName()
返回由此抽象路径名表示的文件或目录的名称
getPath()
将此File对象转换为一个路径名字符串(与toString方法效果相同,获取的值与构造方法的参数值一致)
getParent()
返回此抽象路径名父目录的路径名字符串;如果此路径名没有指定父目录,则返回 null。
getParentFile()
返回此File对象父目录的File对象;如果此File对象没有指定父目录,则返回 null。
length()
返回由此抽象路径名表示的文件的长度,只能使用文件对象调用该方法,如果使用文件夹对象调用该方法,但结果不准确
list()
返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中的文件和目录。
listFiles()
返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件。
文件筛选过滤的源码分析
3.2 判断方法
exists()
测试此File对象表示的文件或目录是否存在。
isDirectory()
测试此抽象路径名表示的文件是否是一个目录。(必须保证exists方法为true才有意义)
isFile()
测试此抽象路径名表示的文件是否是一个标准文件。
equals(Object obj)
测试此抽象路径名与给定对象是否相等。
3.3 操作方法
createNewFile()
当且仅当不存在具有此抽象路径名指定名称的文件时,不可分地创建一个新的空文件。
delete()
删除此抽象路径名表示的文件或目录。
mkdir()
创建此抽象路径名指定的目录。
mkdirs()
创建此抽象路径名指定的目录,包括所有必需但不存在的父目录。
3.4 使用注意
3.4.1 获取指定目录的文件时
1. 指定的目录必须是存在的
2. 指定的必须是目录。否则容易引发返回数组为 null,出现 NullPointerException
3.4.2 使用list和listFiles方法时
1. 如果对象不是文件夹,会返回null,会出空指针异常
2. 如果file对象对应的文件夹不存在于硬盘上,那么会出现空指针异常
二. 递归
1. 介绍
1) 递归就是方法调用的一个形式
2) 当方法的调用形成了一个闭环,就是一个递归
2. 分类
1) 直接递归
在一个A方法中直接调用自己的方法A,那么此时就是直接递归
2) 间接递归
A 方法调用 B 方法,B 方法调用 C 方法,C 方法调用 A 方法。
3. 注意事项
1. 递归的层次不能太深
2. 递归必须有出口
(如果没有注意以上事项,则可能会报栈内存异常,如下图)