import java.nio.ByteBuffer;
import java.nio.CharBuffer;
public class UsingBuffers {
public static void main(String[] args) {
char[] data = "UsingBuffers".toCharArray();
ByteBuffer bb = ByteBuffer.allocate(data.length * 2);
CharBuffer cb = bb.asCharBuffer();
cb.put(data);
cb.rewind();
System.out.println(cb.get() + " " + cb.position());//U 1
System.out.println(cb.get(3) + " " + cb.position());//n 1
System.out.println(cb.limit());//12
cb.put(5,'x');
System.out.println(cb.limit() + " " + cb.position());//12 1
cb.put('z');
System.out.println(cb.limit() + " " + cb.position());//12 2
}
}
调用Buffer的相对的get()/put(),position指针会随之发生变化。
调用Buffer的绝对的get(index)/put(index), position指针不会改变。
分享到:
相关推荐
Java NIO Buffer 过程详解 Java NIO Buffer 是 Java NIO 中的一种重要组件,负责数据的存储和传输。缓冲区是数组,用于存储不同数据类型的数据。在与 NIO 通道交互时,Java NIO Buffer plays a crucial role. 基本...
缓冲区具有特定的方法,如put和get,用于数据的存取。 3. **选择器(Selector)**:选择器是Java NIO的核心,它可以监视多个通道的事件(如连接就绪、数据到达等)。通过注册感兴趣的事件类型到选择器,一个线程...
Java NIO提供了ByteBuf、CharBuf、ShortBuf、IntBuf、LongBuf、FloatBuf和DoubleBuf等不同类型的缓冲区,它们都有统一的API,如put()用于写入数据,get()用于读取数据,clear()用于清空缓冲区,flip()用于切换读写...
Buffer提供了一种高效且可控的方式来读写数据,如get()和put()方法,以及position()、limit()和capacity()属性来管理缓冲区的状态。 2. **选择器(Selectors)** - **选择器**:Java NIO中的选择器允许单个线程...
Buffer类提供了诸如capacity(容量)、limit(限制)和position(位置)等属性,以及各种get和put方法来操作缓冲区内的数据。 3. **选择器(Selector)**:选择器允许单线程处理多个通道。通过注册通道并设置感兴趣的...
Buffers不仅可以存储原始数据,还提供了一系列方法来控制数据的读写操作,如`put()`、`get()`等。 - **Selectors**:Selectors使得单个线程能够有效地管理多个Channel上的事件。这对于构建高效的服务器端应用程序至...
2. **分配缓冲区**:通过Buffer子类的allocate()方法创建缓冲区,然后通过put()和get()方法存取数据。 3. **通道与缓冲区交互**:使用通道的read()和write()方法,将数据从通道读入缓冲区或从缓冲区写入通道。 4. ...
Java NIO有多种类型的缓冲区,如ByteBuffer、CharBuffer、IntBuffer等,它们都继承自抽象类Buffer。缓冲区具备了一定的容量,可以通过get()和put()方法进行数据读写,并且可以跟踪当前位置、容量和限制。 3. **选择...
Java NIO(New IO)是Java 1.4版本引入的一个新API,全称为Non-blocking Input/Output,它提供了一种不同于传统IO的编程模型,传统IO基于块I/O,而NIO则基于通道(Channel)和缓冲区(Buffer)进行数据传输。NIO的...
Java NIO 是 JDK 1.4 中引入的新的 IO 方式,它主要包含 Buffer、Channel、Selector 三个核心的组件。 Java NIO 概述 ---------------- Java NIO 是 Java 编程语言中的一种新的 IO 模式,它与传统 IO 的区别在于...
- **Buffer的创建和操作**:可以通过allocate()方法创建Buffer,然后使用put()和get()方法读写数据。Buffer的clear()、flip()和rewind()方法用于调整position和limit状态,以适应读写需求。 - **Channel的打开和...
Java NIO 的核心组件主要包括 Channel 和 Buffer。 ##### 1. Channel (通道) 通道是 Java NIO 中数据流的主要载体,它允许数据从一个地方传输到另一个地方。通道提供了更灵活的方式来访问数据,并且可以进行读取、...
Java NIO提供了多种类型的缓冲区,如ByteBuffer、CharBuffer、DoubleBuffer、FloatBuffer、IntBuffer和LongBuffer等,它们都继承自抽象类Buffer。缓冲区具有容量、限制和位置等属性,以及诸如put、get和flip等操作...
缓冲区提供了丰富的操作方法,如get()和put()用于读写数据,clear()和flip()用于重置缓冲区,以及hasRemaining()和limit()用于检查和设置缓冲区状态。 8. **选择器的使用** 使用选择器时,首先需要创建一个...
另外,`get()`和`put()`方法分别用于读取和写入数据,`read()`和`write()`方法则用于从通道读取到缓冲区,或者将缓冲区的数据写入通道。同时,缓冲区的容量、位置和限制的管理也是这一节的重点内容。 此外,NIO还...
缓冲区提供了对数据的结构化访问,例如,可以使用get和put方法进行数据操作,并且具有位置、限制和容量等属性,便于管理数据读写。 NIO库中的缓冲区有多种类型,每种类型对应一种基本数据类型,如: - ByteBuffer:...