课程回顾:
今日内容:
Java中的集合
1、Collection<E>:继承了迭代器接口
1、List<E>:
1、ArrayList<E>
2、LinkedList<E>
2、Set<E>:
1、HashSet<E>
2、LinkedHashSet<E>
3、TreeSet<E>
2、Map<K,V>:
1、HashMap<K,V>
2、HashTable<K,V>
3、TreeMap<K,V>
特点:
List:重复、有序、索引
Set:不可重复、无序、无索引
Map:存储键值对
泛型:5.0
一种引用数据类型的占位符
T、M、K、V、P、E
主要是避免对象转型,提高效率
自定义泛型:
日常开发中,不确定的引用数据类型可以使用泛型
自定义泛型类
格式:修饰符 class 类名<T>
在类的内部,T就可以作为数据类型使用
自定义泛型方法:可以接受任何类型的对象
格式:[修饰符] <M> 返回值类型 方法名(M m);
{
}
受限泛型:受到约束的泛型
? extends E
? super E
T extends List
路径的划分:
1、绝对路径
物理路径,真实路径
一般都是盘符开头
是完整的路径名,不需要任何其他信息就可以定位它所表示的文件
2、相对路径
相对于当前项目而言,不带盘符
使用取自其他路径名的信息进行解释
File类:
java中描述文件或文件夹的类
常用属性:
separator:获取当前系统的分隔符
常用方法:
getAbsolutePath:获取绝对路径字符串
exists:验证文件是否存在
createNewFile:创建新的文件
canWrite:是否能写
canRead:是否能读
isFile:是否为文件
isDirectory:是否为目录
isHidden:是否为隐藏文件
length:获取文件的大小,单位:B
lastModified:获取修改时间,单位:毫秒
getName:获取文件名或文件夹名称
mkdir:创建当前的文件夹,如果上级目录不存在则创建失败
mkdirs:创建当前路径上所有不存在的文件夹
getParentFile:获取上级目录对应的File对象
renameTo:重命名并移动
文件可以任意移动(包括跨盘符)
文件夹只能在同一盘符下移动
移动---文件或目录名不能改变
重命名---路径不能改变
list:获取当前目录下所有直接子目录或文件的名称
listFiles:获取当前目录下的直接子目录或文件的File对象
delete:删除,如果是目录要求目录内必须为空才可以删除成功,如果为文件,那么文件不能被占用才能删除成功
FilenameFilter:文件名过滤器接口
主要是应用文件名过滤的
递归:方法内部出现了自己调用自己的情况
练习:获取一个文件夹中的所有文件和文件夹
递归
I/O流
Stream:流:数据通信的管道
流的分类:
1、按照方向划分
1、输入流
2、输出流
2、按照单位划分
1、字节流:传输的数据单位:字节B
2、字符流:传输的数据单位:字符
3、按照功能划分
1、节点流:直接操作数据的流
2、处理流(过滤流):操作流的流
操作资源我们使用字节流,只有操作字符串和文本文件的时候我们才使用字符流
java流的四大父类,都是抽象类
1、InputStream:输入字节流
read
skip
2、OutputStream:输出字节流
write
flush
3、Reader:输入字符流
read
skip
4、Writer:输出字符流
write
flush
流一般来讲都需要关闭close,放在Finally
文件流:操作文件的流
就是数据存储或来自文件中
1、FileWriter:文件输出字符流
write
flush
2、
3、
4、
周三:自定义泛型+File
周四:文件流+缓冲流+装饰者模式+转换流
周五:内存流+对象流+数据流+打印流
周六:随机读取文件类+流的总结+第四周考试(选择和编程)