Java的NIO编程-Buffer

0x1 子类

Buffer是一个抽象类,所以一般使用他的子类来进行编程,常用的子类有:

  • ByteBuffer

  • IntBuffer

  • LongBuffer

  • CharBuffer

  • DoubleBufffer

  • FloatBuffer

  • ShortBuffer

  • MappedByteBuffer

0x2 属性

Buffer中有四个重要的属性,分别是:

  • capacity:Buffer类的capacity属性,表示内部容量的大小
  • position:Buffer类的position属性,表示当前的位置
  • limit:Buffer类的limit属性,表示读写的最大上限。
  • mark:暂存属性,暂时保存position的值,方便后面的重复使用position值。

图片

0x3 方法

Buffer中几个重要的方法有:

  • allocate():创建缓存区(BUffer创建缓存区不是用new,而是用这个方法来创建)
  • put():向缓冲器插入数据
  • filp():翻转模式,将缓冲区改为读模式(缓冲区默认模式为写模式)。其实就改变了limitpositionmark属性的值。
  • get():从缓冲区读取数据,从position位置开始读
  • rewind():倒带(重复读取),就是将position的位置重置为0
  • mark():mark()方法的作用就是将当前position的位置暂存起来,放在mark属性中。
  • reset():将position重置为mark属性的位置。
  • clean():清空缓存区,重置positionlimitmark属性为初始值