zoukankan      html  css  js  c++  java
  • IO流03_流的分类和概述

    【概述】

    Java的IO流是实现输入/输出的基础,它可以方便的实现数据的输入/输出操作。

    Java中把不同的输入/输出源(键盘、文件、网络连接)抽象表述为"流"(Stream)。

    【流的分类详细】

    [ 输入流---输出流 ]

    按照流的流向,可以将流分为输入流和输出流。

    输入流:从其中读取数据

    输出流:向其种写入数据

    注意:划分输入/输出流是从程序运行时的所在的内存的角度来划分的。

    输入流常用的基础类:InputStream和Reader

    输出流常用的基础类:OutputStream和Writer

    注意:这些积累都是抽象类,无法直接实例化。

    [ 字节流---字符流 ]

    字节流和字符流的内的方法几乎一样,区别仅仅是其操作的数据单元大小不同,

    字节流的数据操作单元: 8位的字节

    字符流的数据操作单元: 16位的字节

    字节流常用的基础类:InputStream和OutputStream

    字符流常用的基础类:Reader和Writer

    [ 节点流---处理流 ]

    节点流:从/向一个特定的IO设备(磁盘、网络等)读/写数据的流。节点流也常称为低级流( Low Level Stream )如下。

     从图中可以看出,当使用节点流进行输入/输出时,程序直接连接到实际的数据源,和实际的输入/输出节点连接。

    处理流:用于对已存在的流进行连接或封装,通过封装后的流来实现对数据的读/写功能。处理流常被称为高级流。

     

    从图中可以看出,使用处理流进行输入/输出时,程序不会直接连接数据源,没有和实际的输入/输出节点连接。

    只要使用相同的处理流,程序就可以采用相同的输入/输出代码来访问不同的数据源。

    注:Java使用处理流来包装节点流使用了装饰器模式,使用处理流来包装不同的节点流,既可以消除不同节点流的实现差异,也可以提供更方便的方法来完成输入输出功能。

    节点流又称为包装流。

    使用处理流的特点:

    1.性能提高:主要增加缓冲的方式来提高输入/输出的效率。

    2.操作便捷:处理流提供了一系列便捷的方法来一次输入/输出大批量的内容。

    3.处理流可以建立在任何已存在的流基础之上,这就允许java应用程序采用相同的代码、透明的方式来访问不同的输入/输出流。

     通过使用处理流,Java程序无需理会输入/输出节点是磁盘、网络还是其他输入输出设备,程序只要将这些节点流包装成处理流,就可以使用相同的输入输出代码来读写不同的输入输出设备的数据。

  • 相关阅读:
    The new powerful SQL executing schedule monthly or weekly in DB Query Analyzer 7.01
    热烈庆祝自已厉精13年开发的 DB查询分析器 7.01(最新版本) 在中关村在线本月获得近6000次的下载量
    CentOS7下安装GitLab
    DB查询分析器7.01新增的周、月SQL执行计划功能
    Ubuntu环境下Anaconda安装TensorFlow并配置Jupyter远程访问
    Docker学习笔记4: Docker-Compose—简化复杂容器应用的利器
    Docker学习笔记3:CentOS7下安装Docker-Compose
    CentOS7下安装python-pip
    [Flutter] 音频播放插件 audioplayers 的一个路径坑
    解放双手之自动拉取与推送
  • 原文地址:https://www.cnblogs.com/HigginCui/p/5923943.html
Copyright © 2011-2022 走看看