zoukankan      html  css  js  c++  java
  • netty 之 传统的阻塞io 体系回顾

    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
    原创打造,多多指教
  • 相关阅读:
    Linux之redis-cluster(集群配置)
    MariaDB主从复制,redis发布订阅,持久化,以及主从同步
    Vue之添加全局变量
    Linux之nginx入门
    Linux中python3,django,redis以及mariab的安装
    Linux系统优化及基础命令
    linux基本命令
    Linux常用命令大全
    Flask之项目配置,目录构建,闪现
    C语言II博客作业04
  • 原文地址:https://www.cnblogs.com/iscys/p/9656524.html
Copyright © 2011-2022 走看看