JavaINO
- 即
Java New IO
也叫非阻塞式IONone Blocking IO
- 是1个全新的、
JDK 1.4
后提供的IO API
2. 作用
- 提供了与标准
IO
不同的IO
工作方式 - 可替代 标准
Java IO
的IO API
3. 新特性
对比于 Java IO
,NIO
具备的新特性如下
Java NIO和IO的主要区别
IO流 | NIO流 |
---|---|
面向字节流 | 面向缓存 |
阻塞IO(Blocking IO) | 非阻塞(Non Blocking IO) |
(无) | 选择器(Selectors) |
4. 核心组件
Java NIO
的核心组件 包括:
- 通道(
Channel
) - 缓冲区(
Buffer
) - 选择器(
Selectors
)
5.NIO_Buffer_分配和存取
- 缓存中的三个重要参数
/**
* 测试缓存分配
*/
@Test
public void test1(){
// capacity 分配缓存大小
int capacity = 1024;
ByteBuffer buffer = ByteBuffer.allocate(capacity);
System.out.println("capacity(缓存大小):" + buffer.capacity());
System.out.println("limit(限制):" + buffer.limit());
System.out.println("position(起始位置):" + buffer.position());
System.out.println("--------------------------------------------------------");
// 向缓存中存数据 put();
buffer.put("hello world!".getBytes());
System.out.println("capacity(缓存大小):" + buffer.capacity());
System.out.println("limit(限制):" + buffer.limit());
System.out.println("position(起始位置):" + buffer.position());
System.out.println("--------------------------------------------------------");
//flip() 方法切换到读的状态
buffer.flip();
System.out.println("capacity(缓存大小):" + buffer.capacity());
System.out.println("limit(限制):" + buffer.limit());
System.out.println("position(起始位置):" + buffer.position());
System.out.println("--------------------------------------------------------");
// 从缓存中取数据 get()
//byte b =