• 通道是对原 I/O 包中的流的模拟。到任何目的地(或来自任何地方)的所有数据都必须通过 一个 Channel 对象(通道)。一个 Buffer 实质上是一个容器对象。发送给一个通道的 所有对象都必须首先放到缓冲区中;同样地,从通道中读取的任何数据都要读到缓冲区 中。

  • Channel是一个对象,可以通过它读取和写入数据。拿 NIO 与原来的 I/O 做个比 较,通道就像是流。 正如前面提到的,所有数据都通过 Buffer 对象来处理。您永远不会将字节直接写入通道 中,相反,您是将数据写入包含一个或者多个字节的缓冲区。同样,您不会直接从通道 中读取字节,而是将数据从通道读入缓冲区,再从缓冲区获取这个字节。