package com.zhengtian.test;
import java.nio.ByteBuffer;
import java.nio.IntBuffer;
/**
* @author zhengtian
*
* @date 2011-6-17 下午02:39:24
*/
@SuppressWarnings("all")
public class test {
public static void main(String[] args) {
// 创建一个字节缓冲区
ByteBuffer bb = ByteBuffer.allocate(10);
// 创建该字节缓冲区的整型视图缓冲区,视图缓冲区与字节缓冲区共享缓冲区元素,但独立维护自己缓冲区的postion、limit、容量等
IntBuffer ib = bb.asIntBuffer();
/**
* 将字符型变量转换为数值型变量实际上有两种对应关系,在我们在第一部分所说的那种转换中, 实际上是将其转换成对应的ASCII码,但是我们有时还需要另一种转换关系, 例如,‘1’就是指的数值1,而不是其ASCII码,对于这种转换, 我们可以使用Character的
* getNumericValue(char ch)方法。
*
* 因此將字符'1'、'2'、'3'、'4'存入字节缓冲区时,实际上是存储的二进制形式的49、50、51、52
*/
bb.put((byte) '1');
bb.put((byte) '2');
bb.put((byte) '3');
bb.put((byte) '4');
bb.flip();
System.out.println(bb.get());
System.out.println(bb.get());
System.out.println(bb.get());
/**
* 整型缓冲区在读取数据时,是一次从字节缓冲区中读取4个字节,然后将先读取的字节放在高位,后读取的字节放在低位,最后组合成一个int
*/
System.out.println(ib.get());
}
}
整型视图缓冲区如何读取字节缓冲区的数据?
最新推荐文章于 2022-03-23 17:37:18 发布