【转载】JAVA NIO 简介
原文链接:http://www.iteye.com/topic/8344471. 基本概念
IO是主存和外部设备(硬盘、终端和网络等)拷贝数据的过程。IO是操作系统的底层功能实现,底层通过I/O指令进行完成。
所有语言运行时系统提供执行I/O较高级别的工具。(c的printf scanf,java的面向对象封装)
2. Java 标准io回顾
Java标准IO类库是io面向对象的一种抽象。基于本地方法的底层实现,我们无须关注底层实现。 InputStream\OutputStream(字节流):一次传送一个字节。 Reader\Writer(字符流):一次一个字符。
3. nio简介
nio是java New IO的简称,在jdk1.4里提供的新api。Sun官方标榜的特性如下:
– 为所有的原始类型提供(Buffer)缓存支持。
– 字符集编码解码解决方案。
– Channel:一个新的原始I/O抽象。
– 支持锁和内存映射文件的文件访问接口。
– 提供多路(non-bloking)非阻塞式的高伸缩性网络I/O。
本文将围绕这几个特性进行学习和介绍。
4. Buffer&Chanel
Channel和buffer是NIO是两个最基本的数据类型抽象。
Buffer:
– 是一块连续的内存块。
– 是NIO数据读或写的中转地。
Channel:
– 数据的源头或者数据的目的地
– 用于向buffer提供数据或者读取buffer数据,buffer对象的唯一接口。
– 异步I/O支持
http://dl.iteye.com/upload/attachment/361546/f4a0aefc-127c-3c9e-975f-36cce5173a35.jpg
图1:channel和buffer关系
例子1:CopyFile.java:
<span style="font-size: small;"><div class="dp-highlighter"><div class="bar"><div class="tools">Java代码
页:
[1]