获取文本类型

尽管ByteBuffer只能保存字节类型的数据,但是它具有可以从其容纳的的字节中产生出各种不同基本类型的方法。下面这个例子展示了怎样使用这些方法来插入和抽取各种数值:

public class GetData {
    private static final int BSIZE=1024;
    public static void main(String[] args){
        //一个字节8位,一个字符2个字节
        ByteBuffer buffer=ByteBuffer.allocate(BSIZE);
        int i=0;
        while (i++<buffer.limit()){
            if(buffer.get()!=0)
                System.out.println("nonzero");
            System.out.println("i="+i);
        }
        buffer.rewind();
        buffer.asCharBuffer().put("Howday!");
        char c;
        while ((c=buffer.getChar())!=0){
            System.out.println(c);
        }
        buffer.rewind();
        buffer.asShortBuffer().put((short)471142);
        System.out.print(buffer.getShort());
        buffer.rewind();
        buffer.asIntBuffer().put(9999);
        System.out.println(buffer.getInt());
        buffer.rewind();
        buffer.asLongBuffer().put(89088908);
        System.out.println(buffer.getLong());
        buffer.rewind();
        buffer.asFloatBuffer().put(999878);
        System.out.print(buffer.getFloat());
        buffer.rewind();
        
    }
}

在分配一个ByteBuffer之后,可以通过检测它的值来查看缓冲器的分配方式是否将其内容自动置0--它确实是这样做了。这里一共检测了1024个值(由缓冲器limit()决定),并且所有值都是0.

向ByteBuffer插入基本类型数据的最简单的方法是:利用asCharBuffer()、asShortBuffer()等获得该缓冲器上的视图,然后使用视图的put()方法。此方法适用所有基本数据类型。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值