Java IO流简介

版权声明:作者:changshuchao https://blog.csdn.net/changshuchao/article/details/89095836

java的IO流根据传输单位可以分为:

  • 字节流(InputStream、OutputStream)
  • 字符流(Reader、Writer)

根据功能可以分为:

  • 节点流
  • 包装流:对一个IO流进行封装,如BufferedReader。隐藏了底层的节点流的差异,对外统一提供方法,更方便输出/输入。

按照字节流和字符流划分的结构图如下:
在这里插入图片描述为什么我们要使用字符流?
因为我们操作的流不一定全部是英文,还会有许多类似汉字的其他字符,例如汉字根据编码的不同会占据多个字节,这时候我们使用字节流去读取就有可能出现乱码。

IO流的继承关系如下图所示(图片来源https://images2015.cnblogs.com/blog/1120165/201705/1120165-20170514215843894-1251221936.png):
在这里插入图片描述 我们接着会从这张图来了解整个IO流:
普通流 https://blog.csdn.net/changshuchao/article/details/89096128
缓冲流 https://blog.csdn.net/changshuchao/article/details/89096924
转换流 https://blog.csdn.net/changshuchao/article/details/89097028
内存流 https://blog.csdn.net/changshuchao/article/details/89097300
合并流 https://blog.csdn.net/changshuchao/article/details/89097477
对象流 https://blog.csdn.net/changshuchao/article/details/89097655

猜你喜欢

转载自blog.csdn.net/changshuchao/article/details/89095836