分类
功能流(经过包装)
close()方法需要后接入的先关闭
字节流(万能流)
FileInputStream文件输入流
从文件中获取输入字节
构造器
输出int表示读入字节个数,若无返回-1
通过byte数组对数据进行操作
byte数组的长度通常设置为1024的倍数
read(byte[ ] b, 选择读取位置和长度
FileOutputStream文件输出流
boolean append) 是否接续写入
(会自动创建文件,但不会自动创建父文件夹)
byte数组的长度一般设为1024的倍数
刷新,继承自父类
复制文件夹
字符流
字符输入流
Rader(抽象父类)->InputStreamReader->FileReader(文件字符输入流)
字符输出流
Writer(抽象父类)-> OutputStreamWriter->FileWriter(文件字符输出流)
FileWriter
boolean append)
是否采用接续写入 不影响本次输入
写入字符数组
刷新,继承自父类
结构步骤
缓冲流
用于增强传输功能和效率
1字节缓冲流(无重新改写方法)
直接嵌套在字节流外部,方法继承了父类
父类引用=new BufferedInputStream(new FileInputStream(File对象|Stream地址))
父类引用=new BufferedOutputStream(new FileOutputStream(File对象|Stream地址))
2字符缓冲流
通过内部嵌套字符流实现具备字符流原有方法
基本数据类型流
适用字节输入流
1用于读写带有基本数据类型和String类型的数据
写入流DataOutputStream(OutputStream)
注意:读取写入顺序
对象流
序列化:将对象信息转换为可存储或者可传输的信息格式
对象流(先序列化后反序列化)
1序列化输出流 ObjectOutputStream out=
new ObjectOutputStream(new BufferedOutputStream(new FileOutputStream(File对象)));
2反序列化输入流 ObjectInputStream in=
new ObjectInputStream(new BufferedInputStream(new FileInputStream(File对象)));
3能够被序列化的对象
转换流(了解)
可能出现乱码的情况:
1.字符编码格式不统一
2.缺少字节个数