1. 字节流
InputStream 字节读取流父类,抽象类
FileInputStream
int read() 每次读取一个字节,返回值为读取内容的ASCII码,如果读取到末尾返回 值为-1
int read(byte[] data)每次读取一个byte数组,返回值为读取内容的个数
void close() 关闭资源
int available() 获取当前字节流可读字节数
OutputStream 字节写入流父类,抽象类
FileOutputStream
FileOutputStream(String fileName) 如果文件不存在 会自动创建
FileoutputStream(String fileName,boolean append)append表示追加,默认false表示 覆盖文件
write(int data)每次写入一个字节
write(byte[ ] data)每次写入一个字节数组,可以写入中文
close()关闭资源
2. 字符流
Reader
InputSreamReader(转换流、桥接流)
read()每次读取一个字符,返回值为ASCII码,或Unicode 编码,十进制
int read(char[ ] data),每次读取一个char数组,返回值为读取的个数,读取的内容在 数组中
close()关闭资源
FileReader 属于InputSreamReader的子类,只能按照本地平台默认的编码格式读取文件
read()每次读取一个字符
read(char[ ] data)每次读取一个字符数组
BufferedReader(缓冲流)是带有缓冲区的字符读取流,因为有缓冲区,可以减少与内存IO 的次数,提高读取文件的效率
readLine()每次读取一行
Writer
OutputStreamWriter(装换流)
write(String str):写入字符串
OutputStreamWriter(output Stream,"GBK")可以指定写入文件的编码格式
FileWriter属于OutputStreamWriterd的子类,只能按照本地平台默认的编码格式写入文 件
write(String str):写入字符串
BufferWriter(缓冲流)带有缓冲区的字符写入流,可以提高写入文件的效率
newLine()换行
flush()带有缓冲的字符流 ,必须刷新,或者关闭资源
5. 数据流
DataInputStream 负责读取二进制文件
read(byte[ ] data)读取文件保存在数组中
DataOutputStream 负责写入二进制文件
write(byte[ ] data)写入数组中的数据
6. 对象流
序列化:将对象以流的形式保存在二进制文件中
反序列化:将保存有对象的二进制文件,读取为对象、
Serializable接口是一个空接口,所以不需要重写任何方法
此接口存在的意义,相当于给可以被序列化的类添加了一个标记,只有这个接口的实现类才可以被序列化
此接口的实现类 在编译以后 JVM会自动添加一个序列化ID来确保每一个类的唯一性
包名 类名 JD版本等信息
ObjectInputStream 负责读取对象
readObject() 读取对象
ObjectOutputStream 负责写入对象
writeObject() 写入对象