[java][nio]从ByteBuffer中获取基本数据类型
import java.nio.ByteBuffer;/** * * 获取基本数据类型. * */public class GetData {private static final int BSIZE = 1024;public static void main(String[] args) {ByteBuffer bb = ByteBuffer.allocate(BSIZE);int i = 0;printBuffer(bb);//ByteBuffer实例中每个字节自动分配为0while(i++ < bb.limit()){int get = bb.get();//System.out.println("get: " + get);//get=0if(get != 0){System.out.println("nonzero");}}System.out.println("i = " + i);//1025printBuffer(bb);//position=1024System.out.println("--------------");bb.rewind();//指针移到数据头printBuffer(bb);//position=0//保存并读取一个字符数组bb.asCharBuffer().put("Hello world!!");char c ;while((c = bb.getChar()) != 0 ){System.out.print(c + " ");}printBuffer(bb);//position=28bb.rewind();//保存并读取一个shortbb.asShortBuffer().put((short)4583442);System.out.println(bb.getShort());printBuffer(bb);//position=2bb.rewind();//保存并读取一个intbb.asIntBuffer().put(856522114);System.out.println(bb.getInt());printBuffer(bb);//position=4bb.rewind();//保存并读取一个longbb.asLongBuffer().put(1286522114);System.out.println(bb.getLong());printBuffer(bb);//position=8bb.rewind();//保存并读取一个floatbb.asFloatBuffer().put(1286522114.5F);System.out.println(bb.getFloat());printBuffer(bb);//position=4bb.rewind();//保存并读取一个doublebb.asDoubleBuffer().put(1286522114.88);System.out.println(bb.getDouble());printBuffer(bb);//position=8bb.rewind();}static void printBuffer(ByteBuffer bb){System.out.println("limit: " + bb.limit());System.out.println("position: " + bb.position());System.out.println("capacity: " + bb.capacity());}}