码迷,mamicode.com
首页 > 其他好文 > 详细

IO流分类介绍

时间:2020-07-01 19:59:51      阅读:51      评论:0      收藏:0      [点我收藏+]

标签:不同   联系   数据流   file   out   inf   字符串   类型   字节流   

IO流分类介绍

Java IO(BIO)流共涉及40多个类,这些类看上去很杂乱,但实际上很有规则,彼此之间存在非常紧密的联系,按照不同概念可以分为不同类型:

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


    数据的来源可以是硬盘、内存、网络、外部的输入设备。

    • 输入流

      数据从外部流入到程序中。

    • 输出流

      数据从程序流出到其他地方

??

  • 按照操作单元划分,可以划分为字节流和字符流。


    • 字节流

      传输数据的最基本单位是字节(byte[]) 如:

      • 字节输入流 InputStream
      • 字节输出流 OutputStream
    • 字符流

      传输数据的最基本单位是字符(char)如:

      字符输入流 Reader

      字符输出流 Writer

    【注】以上四种基本流都是抽象类

??

  • 按照流的角色划分,可以划为节点流和处理流。


    • 节点流

      可以从/向一个特定的地方(节点)读/写数据。如:

      • 文 件 FileInputStream FileOutputStrean FileReader FileWriter

        对文件进行处理的节点流。

      • 字符串 StringReader StringWriter

        对字符串进行处理的节点流。

      • 数 组 ByteArrayInputStream ByteArrayOutputStream CharArrayReader CharArrayWriter

        对数组进行处理的节点流(对应的不再是文件,而是内存中的一个数组)。

      • 管 道 PipedInputStream PipedOutputStream PipedReaderPipedWriter

        对管道进行处理的节点流。

    • 处理流

      对一个已存在的流的链接和封装,通过所封装的流的功能调用实现数据读写。处理流的构造方法总是要带一个其他的流对象做参数。一个流对象经过其他流的多次包装,称为流的链接。 如:

      • 缓冲流:BufferedInputStrean BufferedOutputStream BufferedReader BufferedWriter

        增加缓冲功能,避免频繁读写硬盘。

      • 转换流:InputStreamReader OutputStreamReader

        实现字节流和字符流之间的转换。

      • 数据流 DataInputStream DataOutputStream

        提供将基础数据类型写入到文件中,或者读取出来。

??

java I0流的40多个类都是从如下4个抽象类基类中派生出来的。

  • InputStream:所有的字节输入流的基类
  • Reader:所有的字符输入流的基类
  • OutputStream:所有的字节输出流的基类
  • Writer:所有的字符输出流的基类
技术图片

IO流分类介绍

标签:不同   联系   数据流   file   out   inf   字符串   类型   字节流   

原文地址:https://www.cnblogs.com/juzhuxiaozhu/p/13221089.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!