`
tjuxiaoqiang
  • 浏览: 26027 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

java NIO 中 flip rewind clear的区别

阅读更多
对缓冲区的读写操作首先要知道缓冲区的下限、上限和当前位置。下面这些变量的值对Buffer类中的某些操作有着至关重要的作用:
limit:所有对Buffer读写操作都会以limit变量的值作为上限。
position:代表对缓冲区进行读写时,当前游标的位置。
capacity:代表缓冲区的最大容量(一般新建一个缓冲区的时候,limit的值和capacity的值默认是相等的)。
flip、rewind、clear这三个方法便是用来设置这些值的。
clear方法

public final Buffer clear()
{
    position = 0; //重置当前读写位置
    limit = capacity;
    mark = -1;  //取消标记
    return this;
}



clear方法将缓冲区清空,一般是在重新写缓冲区时调用。
flip方法

public final Buffer flip() {
limit = position;
position = 0;
mark = -1;
return this;
}
反转缓冲区。首先将限制设置为当前位置,然后将位置设置为 0。如果已定义了标记,则丢弃该标记。 常与compact方法一起使用。通常情况下,在准备从缓冲区中读取数据时调用flip方法。
rewind方法


1public final Buffer rewind() {
2 position = 0;
3 mark = -1;
4 return this;
5}



以上三种方法均使用final修饰,java.nio.Buffer的所有子类均使用同一种flip、clear和rewind机制。
分享到:
评论

相关推荐

    java NIO.zip

    缓冲区具有读写位置,可以通过flip()、clear()和rewind()等方法来管理缓冲区的状态,从而高效地进行数据读写。 3. **选择器(Selectors)**: 选择器允许单线程处理多个通道,极大地提高了处理并发连接的效率。...

    JavaNIO.pdf

    Java NIO(Non-blocking I/O)是Java平台中的一种I/O处理方式,它提供了面向缓冲区的I/O处理机制,可以实现高性能、高效的I/O操作。 缓冲区(Buffer) 缓冲区是Java NIO中非常重要的一个概念,它是特定基本类型...

    JAVA NIO 按行读取大文件支持 GB级别-修正版

    设计思想: 每次通过nio读取字节到 fbb中 然后对fbb自己中的内容进行行判断即 10 回车 13 行号 0 文件结束 这样字节的判断,然后 返回行 如果 到达 fbb的结尾 还没有结束,就再通过nio读取一段字节,继续处理。 ...

    java NIO原理和使用

    通道是 Java NIO 中数据流的主要载体,它允许数据从一个地方传输到另一个地方。通道提供了更灵活的方式来访问数据,并且可以进行读取、写入等操作。 - **FileChannel**:用于文件的读写操作。 - **SocketChannel**...

    Java NIO 主要类和方法(Java NIO中文版 附录C)

    在Java NIO中,Buffer类是所有其他缓冲类的基类,为所有缓冲器类型提供了通用方法。下面详细说明Java NIO中的主要类和方法。 Buffer类(C.1.1): Buffer类是一个抽象类,提供了缓冲区操作的基本结构。以下是一些...

    Java NIO入门的源码

    1. **Buffer类**:深入理解ByteBuffer、CharBuffer、IntBuffer等不同类型的缓冲区,了解它们的基本操作,如allocate、put、get、flip、clear和rewind等。 2. **Channel类**:研究FileChannel、SocketChannel和...

    JAVA NIO 学习资料

    Buffer的clear()、flip()和rewind()方法用于调整position和limit状态,以适应读写需求。 - **Channel的打开和关闭**:使用FileChannel.open()方法打开文件,SocketChannel.open()打开网络连接,完成后调用close()...

    java NIO 学习 聊天室程序 (3)

    Buffer提供了高效的数据存取方式,可以通过flip()、clear()、rewind()等方法管理缓冲区的状态,方便数据的读写。 4. **选择器(Selector)**:Selector是NIO中的核心组件,它可以监控多个通道的事件(如连接、读、...

    Java NIO.pdf

    Buffer还有clear、flip、rewind等方法,方便数据的管理和传输。 在Java NIO中,Selector是实现多路复用的关键组件。通过注册感兴趣的Channel到Selector,我们可以等待这些Channel上的事件(如连接就绪、数据可读、...

    Java NIO学习笔记——ByteBuffer用法

    在Java编程语言中,NIO(New Input/Output)是一个重要的特性,它为开发者提供了非阻塞I/O操作的能力,极大地提高了程序的性能。本文主要关注的是Java NIO中的ByteBuffer,一个关键的数据容器,用于在通道(Channel)...

    JavaNIO_API帮助文档详解

    `ByteBuffer`尤其重要,因为它常用于`java.nio.channels`中的通道操作。 - **`java.nio.channels`**:这是NIO的核心,定义了多种通道接口,如文件通道和网络通道,以及用于异步I/O操作的关键类`Selector`。 - **`...

    Java Nio ibm技术文档

    随着JDK 1.4的发布,一个新的输入输出库——NIO(New Input/Output)被引入到了Java标准库中。NIO库提供了高速、面向块的数据读写能力,并且全部基于标准的Java代码实现。本文档旨在为Java程序员提供一个全面深入...

    Java NIO中四大核心组件的使用详解.rar

    例如,get()和put()用于读写数据,flip()用于反转缓冲区以便读取,clear()用于清空缓冲区,rewind()则用于重新读取缓冲区的内容。 3. **选择器(Selector)**:选择器用于监控多个通道的状态,当通道准备好进行读、...

    NIO笔记.doc

    缓冲区的操作包括allocate、put、get、flip、clear和rewind等。 5. **选择器(Selector)**: - 选择器允许单线程监控多个通道,当某个通道准备进行读写操作时,选择器会通知应用程序。这种方式减少了线程数量,...

    java NIO入门(中英+代码)

    用户可以通过get()和put()方法来读写数据,并通过flip()、clear()和rewind()等方法来管理缓冲区的状态。 2. **通道(Channel)**:通道是数据进出的路径,可以读也可以写,比如FileChannel、SocketChannel等。通道...

    java.nio API详解

    Java NIO(New Input/Output)API是在JDK 1.4版本中引入的一个重要的改进,它是对传统Java IO API的补充,旨在提供更高效、更灵活的数据输入和输出方式,特别是对于高并发和高性能的应用场景,如服务器端程序。NIO的...

Global site tag (gtag.js) - Google Analytics