一 回顾
1.IO 流:
按照流向:输入流与输出流
按照类型: 字节流与字符流
2.字节流-写:
OutputStream public void close() 关闭资源
public void flush() 将缓冲区的数据刷新到硬盘中 (写)
public void write(byte[] b) 将字节数据的内容写入
public abstract void write(int b) 一个一个字节的写入
public void write(byte[] b,int off,int len) 写指定数组的指定长度的数据写入
3.文件写-FileOutputStream
4.使用的步骤
A.实例化-FileOutputStream
B.调用写的方法
C.关闭资源
5.字节流-读:InputStream
public void close() 关闭资源
public abstract int read() 一个一个字节读
public int read(byte[] b) 一次读取多个字节 放入到缓冲数组中
public int read(byte[] b,int off,int len)一次读取指定长度多个字节 放入到缓冲数组中6.read()与 read(byte[] b)
read() 低 read(byte[] b) 高
一个一个字节读 一次读取多个字节
返回读取的字节的内容 读取的有效的字节个数
7.高效流 BufferedInputStream 读 BufferedOutputStream 写 底层有一个长度8192的缓冲区数组
8.字符流:
A.字符流= 字节流+编码表
9.字符流- 读 (只有char )
Reader
public int read() 一个一个字符读取
public int read(char[] cbuf) 一次多个字符
public abstract int read(char[] cbuf,int off,int len) 一次读取指定的字符
FileReader
10.字符流 -写 (可以char[] string)
Writer
public void write(char[] cbuf) 写多个字符
public void write(int c) 写一个字符
public void write(String str) 写字符串
FileWriter 文件
二 作业01
step01 需求
{a=2, b=2, c=2, d=2}
五 字符流
5.1字符流文件内容copy的流程
注意点:
A.不能使用字符流来读取音视频以及图片
B. 原因:因为使用字符流读取文件的时候 需要依赖于编码表来进行转换
音视频 不能使用常规编码表来进行转换
六 转换流
6.1 InputStreamReader-简介
A.InputStreamReader 是字节流通向字符流的桥梁
B.它使用指定的 charset 读取字节并将其解码为字符 可以设置其编码的格式
C.为了达到最高效率,可要考虑在 BufferedReader