文件流
内存流(了解)
注意:节点流
ByteArrayInputStream:内存输入流
作用:将运行内存中的数据读取到程序中
ByteArrayOutputStream:内存输出流
作用:将程序中数据储存运行内存中
注意:
内存输入流自带内存默认初始大写为32字节,当不够时会自动扩容
特有方法:
toByteArray():通过内存输出流获取其储存数据的数组
缓冲流(重点)
作用:提高读写效率
注意:过滤流(包装流)
BufferedInputStream
作用:提高读的效率
BufferedOutputStream
作用:提高写的效率
注意:
1,包装流在关闭时,会关闭他所包装的节点流
2,默认缓冲区为8kb
对象流(次重点)
作用:读写对象
注意:过滤流(包装流)
ObjectInputStream
ObjectOutputStream
特有方法:
writeObject():写出对象
注意:
读写的对象所属的类必须实现序列化接口,包括对象的属性的数据类型也需要实现序列化
序列化:
让对象所属的类型实现Serializable接口
注意:
1,八个基本数据类型包装类与String都已经实现了Serializable接口
2,不能序列化的属性有:
1,使用transient修饰的属性为瞬时属性,不参与序列化
2,使用static修饰的属性,不参与序列化
字符流
特点
传递最小单位是char(字符)
不能传递音频视频图片等内容,只能传递文本
体系结构
Reader
提供的方法:
int read():一次读取一个字符,返回值就是读取到的字符,返回值-1表示读取结束
int read(char cbuf[ ]):一次读取一组字符到数组cbuf中,返回值为读取到的字符长度,-1时表示结束
int read(char cbuf[ ] , int off , int len):一次读取一组字符到数组cbuf中,从off位置开始储存,储存len个,返回值为读取到的字符长度,-1表示结束
void close():关流
Writer
提供的方法:
void write(int c):一次写入一个字符
void write(char cbuf[ ]):一次写入一组字符
void write(char cbuf[ ], int off, int len):将cbuf中off位置开始,len个字符写入
void write(String str):将一个字符串写入
void write(String str, int off, int len):将一个字符串从off位置开始,len个长度字符写入
void flush():冲刷
void close():关流
文件流
FileReader
作用:将文本文件的内容读取到程序中
FileWriter
作用:将程序中的数据写入到文本文件中
优点:
相对与字节流读取文本文件,字符流不会出现乱码,因为一次就讲一个字符读取结束了,不会像字节流可能会读取一个字符的一半字节
缺点:
相对于字节流而言,字节流只能操作文本文件
缓冲流
BufferedReader
作用:提供字符流读取的效率
默认缓冲区大小:8192节
特有方法:
readLine():一次读一行
BufferedWriter
作用:提高字符串写出的效率
默认缓冲区大小:8192字符
特有方法:
newLine():给内容中写入一个换行
转换流
InputStreamReader
作用:将字节流输入流转换为字符输入流
注意:当读取到的文本文件与代码的编码格式不同时,转换流可以设定读取的编码格式,防止中文乱码,参数为文本文件的编码格式,ANIS==GBK,Eclispe不支持ANIS
OutputStreamWriter
作用:将字节输出流转换为字节输出流
注意:当写入到文本文件与代码的编码格式不同时,转换流可以设定写入的编码格式,防止中文乱码
标准输出流(了解)
PrintWriter
特有方法:
print();
println();