缓冲区(buffer)是从即将写入通道(channel)或刚刚从通道中读出的一段数据。它是一个持有数据,并扮演NIO通道端点的对象。缓冲区为数据访问和读写过程提供正式机制。

它是NIO和老版Java I/O的一个主要区别。之前数据是直接从流(stream)中读写的,现在数据可以从缓冲区读写。在NIO中,通道是流的同义词。

阅读原文 »

2 收藏


直接登录
最新评论
  • 仙人球 程序猿 2015/09/25

    这篇文章最后的nio的读取顺序有问题,应该是这样的:
    1、首先创建缓冲区,分配容量。Buffer有一个 allocate(size) 方法,可以返回一个 Buffer 对象。ByteBuffer byteBuffer = ByteBuffer.allocate(512);
    2、可以读入数据。int numberOfBytes = fileChannel.read(byteBuffer);
    3、进行 flip 操作,准备进行读操作。byteBuffer.flip();
    4、接下来可以从缓冲区读取数据。char c = (char)byteBuffer.get();

推荐关注