ilove581314 2015-10-29 06:02 采纳率: 0%
浏览 1667

Java Nio中Charset的decode()方法问题

    try {
        ByteBuffer byteBuffer = ByteBuffer.allocate(20);
        System.out.println("capacity = " + byteBuffer.capacity() + ", limit = " + byteBuffer.limit() + ", position = " + byteBuffer.position());

        FileChannel channel = new FileInputStream(PATH).getChannel();
        channel.read(byteBuffer);

        System.out.println("capacity = " + byteBuffer.capacity() + ", limit = " + byteBuffer.limit() + ", position = " + byteBuffer.position());
    byteBuffer.clear();
        System.out.println("capacity = " + byteBuffer.capacity() + ", limit = " + byteBuffer.limit() + ", position = " + byteBuffer.position());

        CharBuffer buffer = Charset.defaultCharset().decode(byteBuffer);
        System.out.println("capacity = " + buffer.capacity() + ", limit = " + buffer.limit() + ", position = " + buffer.position());
    } catch (Exception e) {
        e.printStackTrace();
    }

代码如上,假设有一个文件是系统默认GBK编码,文件内容只有一个数字1,那么上述代码在decode之后得到的CharBuffer的容量为什么是21,比原ByteBuffer都大?而且CharBuffer的容量与极限为什么不同?

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 MATLAB动图的问题
    • ¥15 求差集那个函数有问题,有无佬可以解决
    • ¥15 【提问】基于Invest的水源涵养
    • ¥20 微信网友居然可以通过vx号找到我绑的手机号
    • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
    • ¥15 解riccati方程组
    • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
    • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
    • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
    • ¥50 树莓派安卓APK系统签名