IO流
2021-08-13 11:29:02 29 举报
AI智能生成
JAVA IO流知识体系整理
作者其他创作
大纲/内容
9.打印流
PrintWriter
封装了print()/println()方法,支持写入后换行
支持数据原样打印
10.转换流
桥转换流:InputStreamReader/OutputStreamWriter
可将字节流转换为字符流
可设置字符的编码方式
硬盘中的字节与内存中的字符相互转换
11.File类
概念:代表物理盘符中的一个文件或者文件夹
File类的使用
分隔符
文件操作
文件夹操作
12.FileFilter接口
boolean accept(File pathname)
当调用File类中的listFiles()方法时,支持传入FileFilter接口实现类,对获取文件进行过滤,只有满足条件的文件才可出现在listFiles()的返回值中
13.递归遍历和递归删除
递归遍历文件夹
递归删除文件夹
14.Properties集合
Properties属性集合
特点
1.存储属性名和属性值
2.属性名和属性值都是字符串类型
3.没有泛型
4.和流有关
1.流的概念
内存与存储设备之间传输数据的通道
数据借助流传输
2.流的分类
按方向(重点)
输入流
将 存储设备 中的内容读入到 内存 中
输出流
将 内存 中的内容写入到 存储设备 中
按单位
字节流
以字节为单位,可以读写所有数据
字符流
以字符为单位,只能读写文本数据
按功能
节点流
具有实际传输数据的读写功能
过滤流
在节点流的基础之上增强功能
3.字节流抽象类
字节流的父类(抽象类)
InputStream: 字节输入流(此抽象类是表示字节输入流的所有类的超类)
OutputStream: 字节输出流(此抽象类是表示输出字节流的所有类的超类。输出流接受输出字节并将这些字节发送到某个接收器)
子类:文件字节流
FileInputStream: public int read(byte[] b) //从流中读取多个字节,将读到内容存入b数组,返回实际读到的字节数;如果达到文件的尾部,则返回-1
FileOutputStream:public void write(byte[] b) //一次写多个字节,将b数组中所有字节,写入输出流
write(byte[] b,int off,int len)
该方法将len个字节的数据,并从数组b的off位置开始写入到输出流。
4.字节缓冲流
缓冲流:BufferedInputStream/BufferedOutputStream
提高IO效率,减少访问磁盘的次数
数据存储在缓冲区中,flush是将缓存区的内容写入文件中,也可以直接close
BufferedInputStream
为另一个输入流添加一些功能,即缓冲输入以及支持mark和reset方法的能力。在创建BufferedInputStream时,会创建一个内部缓冲区数组。在读取或跳过流中的字节时,可根据需要从包含的输入流在此填充该内部缓冲区,一次填充多个字节。mark操作记录输入流中的某个点,reset操作使得在从包含的输入流中获取新字节之前,再次读取自最后一次mark操作后读取的所有字节。
构造方法需要一个字节流
BufferedOutputStream
该类实现缓冲的输出流。通过设置这种输出流,应用程序就可以将各个字节写入底层输出流中,而不必针对每次字节写入调用底层系统。
5.对象流
ObjectOutpuStream/ObjectInputStream
增强了缓冲区功能
增强了读写8种基本数据类型和字符串功能
增强了读写对象的功能
readObject()从流中读取一个对象
writeObject(Object obi)向流中写入一个对象
使用流传输对象的过程成为序列化,反序列化
注意事项
1:序列化类必须要实现Serializable接口
2:序列化类中对象属性要求实现Serializable接口
3:序列化版本号ID,保证序列化的类和反序列化的类是同一个类
4:使用transient(瞬间的)修饰属性,这个属性不能序列化
5:静态属性不能序列化
6:序列化多个对象可使用集合实现
6.字节编码
ISO-8859-1
收录除ASCII外,还包括西欧,希腊语,泰语,阿拉伯语,希伯来语对应的文字符号
UTF-8(万国码)
针对Unicode码表的可变长度字符编码
GB2312
简体中文
GBK
简体中文,扩充
BIG5
繁体中文
7.字符流
字符流的父类(抽象类)
Reader:字符输入流
用于读取字符流的抽象类
Writer:字符输出流
写入字符流的抽象类
文件字符流
FileReader
用来读取字符文件的便捷类
public int read(char[] c)//从流中读取多个字符,将读到内容存入c数组,返回实际读到的字符数;如果达到文件的尾部,则返回-1
FileWriter
复制文本文件,不能复制图片或者二进制文件
8.字符缓冲流
缓冲流:BufferedReader/BufferedWriter
高效读写
支持输入换行符
可一次写一行,读一行
自由主题
0 条评论
下一页