博为峰小博老师:
Buffer的常见方法如下所示:
lflip(): 写模式转换成读模式
lrewind():将 position重置为0,一般用于重复读。
lclear():清空buffer,准备再次被写入 (position变成0,limit变成capacity) 。
lcompact(): 将未读取的数据拷贝到buffer的头部位。
lmark(): reset():mark 可以标记一个位置,reset 可以重置到该位置。
lBuffer常见类型: ByteBuffer 、 MappedByteBuffer 、 CharBuffer 、 DoubleBuffer 、 FloatBuffer 、 IntBuffer 、 LongBuffer 、 ShortBuffer 。
[通道Channel]
通道(Channel)是 java.nio 的第二个主要创新。它们既不是一个扩展也不是一项增强,而是全新、极好的 Java I/O 示例,提供与 I/O 服务的直接连接。Channel用于在字节缓冲区和位于通道另一侧的实体(通常是一个文件或套接字)之间有效地传输数据。
通道是一种途径,借助该途径,可以用最小的总开销来访问操作系统本身的 I/O 服务。缓冲区则是通道内部用来发送和接收数据的端点。通道channel充当连接I/O服务的导管,入下图所示: