字节流和字符流

时间:2023-01-11 17:40:35
文件只是用来存放字节序列的!!!!
真正的字符集转化是发生在String--》byte[]
IO操作的基本单位都是byte,换句话说,传输线上的都是byte,之前用到的不同类是为了在传输线前处理、优化
 
BufferedReader // 字符流的缓存
InputStreamReader // 字节流转成了字符流
FileInputStream // 文件转成了字节流
FileReader // 文件转成了字符流(轻简、默认)
 
流对象只是从文件接出来的一个管道,并不能起到缓存作用
换句话说,管道只是用来提供方法的
所谓流对象无法独立,是围绕File的扩展
所以,我们本质上都是对File操作,只是在数据传输的过程中进行相应程度的优化和处理罢了
 
拿对BufferedReader的readLine()的调用来说
可以通过BufferedReader获取文本
而BufferedReader又是通过InputStreamReader获取字符"集合"的
而InputStreamReader又是通过InputStream的子类获取字节“集合”的
而InputStream的子类又是通过JVM实现的native读取字节的(回归单字节文件操作的本质)
 
字节流和字符流