整型视图缓冲区如何读取字节缓冲区的数据?

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());

	}
}

你可能感兴趣的:(视图)