io 体系回顾:

流的概念:

  java 程序 通过流来进行完成输入与输出的。流是生产或者消费信息的抽象,流通过java 的 输入/输出系统与物理设备相连,尽管与他们链接的物理设备不尽相同,所有流的行为具有相同的方式.这样,相同的输入输出类和方法适用于所有类型的外部设备,这意味着一个输入流能够抽象多种不同类型的输入:磁盘文件,键盘或者网络套接字,

同样一个输出流可以输出到控制台,磁盘文件,或者相连的网络,流是处理输入与输出的一个洁净地方,例如他不需要代码理解键盘与网络的不同,java中的流的实现在java.io 包定义的类层次结构内部的

 

从功能来分:输入流与输出流

从流的结构来分:字节流,字符流

字节流的输入流与输出流基础是InputStream 和OutputStream这两个抽象类,字节流的输入与输出操作是由这两个类的子类实现的

字符流的输入输出基础是抽象类Reader 和Writer 

在最底层,所有的输入与输出都是字节形式

 

输入流(java 阻塞io 读取逻辑):

读取的逻辑:

  1.open  a stream 

  2.while more information  ----->while 循环

  3.read information

  4.close thestream

输出流(java 阻塞io 写入逻辑):

输出的逻辑:

  1.open  a stream 

  2.while more information  ----->while 循环

  3.write information

  4.close thestream

 

InputStream 类的层次:

 

OutputStream  类的层次

 

inputStream 与OutputStream 中FilterOutputStream  FilterInputStream属于过滤流,他们必须依赖于节点流,典型的Buffered 就是过滤流。当然了,除了这两个,其他都是节点流,节点流即能与外部打交道操作的流 ,过滤流是用来进一步封装处理节点的流,使用的是装饰者模式

 

 

在节点流与过滤流的处理体系上,使用的是装饰者模式(很重要)  == >  new ccc(new bbb(new aaa))

 

 

 

 

 

 

-------------------------------------------------IO 基础知识 ------------------------------------------------------

字节流顶层父类:

输入流:IputStream
输出流:OutputStream

字符流顶层父类:

Reader
Writer

 

posted on 2018-09-16 16:42  iscys  阅读(186)  评论(0编辑  收藏  举报