美文网首页
Java I/O概述

Java I/O概述

作者: 编程喵喵 | 来源:发表于2019-08-18 22:14 被阅读0次

IO流

谈到IO,我们会想到从磁盘读取的文件IO,网络请求的Socket IO,还有可能我们不怎么常用的跨进程通信的管道IO......
这些在Java中都被抽象为“流”,读取源就是输入流(InputStream),输出目标就是输出流(OutputStream)。

IO流的分类:

  • 按照流的流向分,可以分为输入流输出流
  • 按照操作单元划分,可以划分为字节流字符流
  • 按照流的角色划分,可以划分为节点流处理流

流的原理浅析:

Java IO流共涉及40多个类,这些类看上去很杂乱,但实际上很有规则,而且彼此之间存在非常紧密的联系,Java IO流的40多个类都是从如下4个抽象类基类中派生出来的。

  • InputStream/Reader: 所有的输入流的基类,前者是字节输入流,后者是字符输入流。
  • OutputStream/Writer: 所有输出流的基类,前者是字节输出流,后者是字符输出流。

在使用中:读取纯文本数据优选用字符流,其他使用字节流。

image.png

按操作对象分类图

image.png

新IO

  • 首先,传统java.io包提供了诸如File的抽象,输入,输出流。交互方式是同步,阻塞;
  • 第二,在java1.4中引入NIO框架(java.nio包),提供了Channel,Selector,Buffer等抽象,构建多路复用的,同步非阻塞IO,同时提供了更接近操作系统底层的高性能数据操作方式;
  • 第三,在Java 7中,NIO有了进一步的改进,也就是NIO 2。其引入了异步非阻塞IO方式,或者说AIO(Asynchronous IO)。异步IO基于事件和回调机制。

异步和同步

  • 同步,一种可靠有序的运行机制,在进行同步操作时,后续的任务要等待当前调用返回;
  • 异步,其他任务不需要等待当前调用是否返回,依靠事件,回调机制来实现任务调用。

阻塞和非阻塞

  • 阻塞,当前线程处于阻塞状态,无法从事其他任务,只有当条件就绪才能继续;
  • 非阻塞,不管IO操作是否结束,直接返回,相应的操作在后台继续处理

同步和异步是结果,阻塞和非阻塞是过程。

  • IO,阻塞同步通信模式,客户端与服务端三次握手,简单,吞吐量小。
  • NIO,非阻塞同步通信模式,客户端与服务端通过Channel连接,采用多路复用器轮询注册的Channel。
  • AIO,非阻塞异步通信模式,基于事件和回调机制,采用异步通道实现异步通信。

相关文章

  • Java I/O概述

    IO流 谈到IO,我们会想到从磁盘读取的文件IO,网络请求的Socket IO,还有可能我们不怎么常用的跨进程通信...

  • NIO-Buffer使用

    ByteBuffer的概述 Buffer是java NIO的通道与I/O通信的入口,Buffer是通道向I/O发送...

  • BIO

    BIO 概述 服务端 客户端 bio的优点 bio的缺点 概述 Java BIO (blocking I/O): ...

  • Java I/O流的概述

    Java.io包中最重要的就是5个类和一个接口。5个类指的是File、OutputStream、InputStre...

  • Java开罐头——字符编码最全解析

    收纳进此专辑:I/O流官方中文指南系列概述及索引 内容参考: 知乎 @胖胖 ,深入分析 Java I/O 的工作机...

  • 操作系统(五)输入/输出(I/O)管理

    5.1 I/O管理概述 5.1.1 I/O设备 “I/O”就是“输入/输出”(Input/Output)I/O设备...

  • Kotlin I/O 与文件管理(1)Java I/O 流概述

    Java I/O 流概述Java 流设计理念Java 流类继承层次字节输入流字节输出流字符输入流字符输出流   K...

  • 线上学习资料汇总_新

    1. Java I/O 这些年一直记不住的 Java I/O 深入分析 Java I/O 的工作机制 NIO 入门...

  • 操作系统之设备管理

    一、I/O管理概述 1.1 计算机I/O系统结构 1.2 I/O管理示意图 1.3 I/O的特点 I/O性能经常称...

  • 16、I/O系统(操作系统笔记)

    一、I/O管理概述 1.1 计算机I/O系统结构 1.2 I/O管理示意图 1.3 I/O的特点 I/O性能经常称...

网友评论

      本文标题:Java I/O概述

      本文链接:https://www.haomeiwen.com/subject/ayknjctx.html