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