【幻化万千戏红尘】qianfengDay17-java基础学习:泛型,路径,File类,IO流

时间:2021-05-06 10:26:42

 

 

 

 

 

 

 

 

课程回顾:

 

 

 

 

今日内容:

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

周四:文件流+缓冲流+装饰者模式+转换流

周五:内存流+对象流+数据流+打印流

周六:随机读取文件类+流的总结+第四周考试(选择和编程)