在观看本篇博文前,建议先观看本人博文 —— 《详解 IO流》

NIO流:

首先,本人来介绍下什么是NIO流:

概述

Java NIO ( New IO )是从 Java 1.4 版本开始引入的一个新的 IO API 。

可以替代标准的 Java IO API 。

NIO 与原来的 IO 有同样的作用和目的,但是使用的方式完全不同

NIO 支持面向缓冲区的、基于通道IO 操作

NIO 将以更加高效的方式进行文件的读写操作

那么,现在,本人来展示下 IO流 和 NIO流之前的区别

IO NIO
面向 面向缓冲区
阻塞IO(BlockingIO) 即:BIO 非阻塞IO(NonBlockingIO) 即:NIO
(无) 选择器(Selectors)

(在本篇博文中,本人主要讲解第一点区别,至于剩下两点,将在本人之后的博文中进行讲解)

那么,现在,本人来通过两张图来解释下 什么叫做:IO面向流 和 NIO面向缓冲区

IO流

NIO流


Java NIO 系统的核心在于:通道 (Channel)缓冲区(Buffer)

通道表示打开到 IO 设备 ( 例如:文件、套接字 ) 的连接

若需要使用 NIO 系统

需要获取用于连接 IO 设备的通道以及用于容纳数据的缓冲区

然后操作缓冲区对数据进行处理

结论

Channel 负责传输Buffer 负责存储

那么,本人现在就通过两篇博文来讲解下这两个知识点:


首先是 缓冲区(Buffer)

请观看本人博文 —— 《详解 缓冲区(Buffer 抽象类)》


然后是 通道 (Channel)

请观看本人博文 —— 《详解 通道 (Channel 接口)》


最后本人再来讲解下 Paths类 和 Files类

请观看本人博文 —— 《详解 Paths类 与 Files类》

最新文章

  1. PAT 1049. 数列的片段和(20)
  2. linux下dos环境和unix环境转换
  3. leetcode 257
  4. 4.Single Number && Single Number (II)
  5. iOS -数据库网络之xml解析之远程解析XML
  6. 《深入Java虚拟机学习笔记》- 第3章 安全
  7. XCL-Charts图表库中柱形图的同源风格切换介绍
  8. Java Swing 日期控件(转载)
  9. JWPlayer使用指南
  10. 【转】JDBC学习笔记(4)——PreparedStatement的使用
  11. 2017-5-31 VBA设置config sheet 制作工具
  12. REST Adapter实现SAP PI中的增强XML/JSON格式转换
  13. Python之线程 2 - Python实现线程
  14. Confluence 6 数据中心的缓存
  15. CentOS安装jdk的三种方法
  16. Python3 tkinter基础 Listbox delete 删除单个、所有元素
  17. IDEA中的替换功能(替换代码中的变量名很好用哦)
  18. mxnet卷积神经网络训练MNIST数据集测试
  19. iOS底层音频处理技术(带源代码)
  20. CF Gym 100637B Lunch(拆分子问题)

热门文章

  1. ruby中的try catch
  2. [LeetCode] 935. Knight Dialer 骑士拨号器
  3. 机器学习中的 7 大损失函数实战总结(附Python演练)
  4. java——基本数据类型
  5. CodeForces - 1244D 树(一条链)的染色
  6. [HDU2072]单词数<字符串>
  7. 《 OO第一作业周期(前四周)总结 》
  8. TCP漫谈之keepalive和time_wait
  9. B 【ZJOI2007】时态同步
  10. [一、Jmeter5安装及环境配置]