字节流和字符流

Posted 小z同学

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了字节流和字符流相关的知识,希望对你有一定的参考价值。

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

 

以上是关于字节流和字符流的主要内容,如果未能解决你的问题,请参考以下文章

字节流 字符流 输入流 输出流

字节流 字符流 输入流 输出流

java读取文件问题该选字节流还是字符流?

Core Java - 流(Stream) - 字节流和字符流

Java字节流和字符流,是时候总结一下IO流了

java里字符流 字节流和序列化的区别?