功能简介
CharArrayReader 和 CharArrayWriter, 字符数组作为数据源的字符读写
CharArrayReader
CharArrayWriter
只需要记住他们的根本, CharArray 是数据源的形式
读 CharArrayReader 需要接受一个字符数组作为参数 就是从CharArray 中读,所以需要一个字符数组
写 CharArrayWriter 就是写入到一个CharArray 中去,所以 它内部维护了一个字符数组
显然, 字符数组都是内存中的数据
他们的逻辑类似ByteArrayInputStream ByteArrayOutputStream,只不过一个是字节,一个是字符而已
看下字段对照,相比就能对于实现过程了解一二
CharArrayReader
要始终记着Reader的常规约定方法
read
读取一个字符或者读取字符到数组
mark
reset
markSupported
标记点相关
ready
类似available true 则保证不会阻塞,false则不保证一定阻塞
close
关闭流
构造方法
read
标记功能
close
CharArrayWriter
writer的常规约定
write
将指定的的字符 字符序列 String ,写入
append
追加指定的内容
flush
刷新
close
关闭
构造方法
CharArraywriter 内部维护了一个字符数组
构造方法主要就是对他进行初始化
默认大小是32
缓冲区会随向流中写入数据而自动增长
在调用write方法过程中
一旦大小超过,将会通过Arrays.copyOf 进行自动增长
增长是创建另外一个数组,原始数据全部拷贝过去 char buf[]
是实际存储数据的内部数组
count即是大小,也是下一个将要写入数据的下标索引
所以想要知道大小,直接返回count
想要重置缓冲区,直接count清零,下次从头开始写入即可
构造方法主要就是对他进行初始化
默认大小是32
缓冲区会随向流中写入数据而自动增长
在调用write方法过程中
一旦大小超过,将会通过Arrays.copyOf 进行自动增长
增长是创建另外一个数组,原始数据全部拷贝过去 char buf[]
是实际存储数据的内部数组
count即是大小,也是下一个将要写入数据的下标索引
所以想要知道大小,直接返回count
想要重置缓冲区,直接count清零,下次从头开始写入即可
write方法
提供了三个版本的write
将指定内容写入输出流缓冲区
public void write(int c)
将一个字符写入内部缓冲区
public void write(char c[], int off, int len)
将指定的len个字符写入内部缓冲区
public void write(String str, int off, int len)
将字符串的某一部分写入内部缓冲区
flush 和close
总结
CharArrayReader 和 CharArrayWriter, 字符数组作为数据源的字符读写
逻辑是类似ByteArrayInputStream ByteArrayOutputStream 的
只需要记住CharArrayReader 接受一个CharArray 从这里面读,,read操纵的都是这个字符数组
CharArrayWriter内部有一个CharArray 数据是写入到他们里面的即可,write操纵的是内部的字符数组