在Java中,NIO提供了多种类型的缓冲区(Buffer)类,用于在通道和通道之间传输数据,下面介绍一些常用的Buffer。
1. ByteBuffer
用于字节数据的缓冲区。
import java.nio.ByteBuffer;
public class ByteBufferExample {
public static void main(String[] args) {
ByteBuffer buffer = ByteBuffer.allocate(10);
buffer.put((byte) 65);
buffer.put((byte) 66);
buffer.flip();
while (buffer.hasRemaining()) {
System.out.print((char) buffer.get());
}
}
}
2. CharBuffer
用于字符数据的缓冲区。
import java.nio.CharBuffer;
public class CharBufferExample {
public static void main(String[] args) {
CharBuffer buffer = CharBuffer.allocate(10);
buffer.put('A');
buffer.put('B');
buffer.flip();
while (buffer.hasRemaining()) {
System.out.print(buffer.get());
}
}
}
3. ShortBuffer
用于短整型数据的缓冲区。
import java.nio.ShortBuffer;
public class ShortBufferExample {
public static void main(String[] args) {
ShortBuffer buffer = ShortBuffer.allocate(5);
buffer.put((short) 10);
buffer.put((short) 20);
buffer.flip();
while (buffer.hasRemaining()) {
System.out.println(buffer.get());
}
}
}
4. DoubleBuffer
用于双精度浮点数数据的缓冲区。
import java.nio.DoubleBuffer;
public class DoubleBufferExample {
public static void main(String[] args) {
DoubleBuffer buffer = DoubleBuffer.allocate(3);
buffer.put(3.14);
buffer.put(2.71);
buffer.flip();
while (buffer.hasRemaining()) {
System.out.println(buffer.get());
}
}
}