购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.3.12 判断当前位置与限制之间是否有剩余元素

final boolean hasRemaining()方法的作用:判断在当前位置和限制之间是否有元素。该方法的内部源代码如下:

public final boolean hasRemaining() {
    return position < limit;
}

final int remaining()方法的作用:返回“当前位置”与限制之间的元素个数。该方法的内部源代码如下:

public final int remaining() {
    return limit - position;
}

示例代码如下:

public class Test13 {

public static void main(String[] args) {
    byte[] byteArray = new byte[] { 1, 2, 3 };

    ByteBuffer bytebuffer = ByteBuffer.wrap(byteArray);

    bytebuffer.limit(3);

    bytebuffer.position(2);

    System.out.println("bytebuffer.hasRemaining=" + bytebuffer.hasRemaining() +
    " bytebuffer.remaining="
            + bytebuffer.remaining());
}
}

程序运行结果如下:

bytebuffer.hasRemaining=true bytebuffer.remaining=1

这两个方法可以在读写缓冲区中的数据时使用。本例仅测试读数据时的使用情况,示例代码如下:

public class Test13_1 {

public static void main(String[] args) {
    byte[] byteArray = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
    ByteBuffer byteBuffer = ByteBuffer.wrap(byteArray);
    int remaining = byteBuffer.remaining();
    for (int i = 0; i < remaining; i++) {
        System.out.print(byteBuffer.get() + " ");
    }
    System.out.println();

    byteBuffer.clear();

    while (byteBuffer.hasRemaining()) {
        System.out.print(byteBuffer.get() + " ");
    }
    System.out.println();

    byteBuffer.clear();
    for (; byteBuffer.hasRemaining() == true;) {
        System.out.print(byteBuffer.get() + " ");
    }
}

}

程序运行结果如下:

1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9

运行结果表明成功取出全部的数据。 ri2fVr5foQWaxhvUTf7wV90l/25Pryrkdk2xa0nAH0OiMcXq0bZsvXEyomdIm8EI

点击中间区域
呼出菜单
上一章
目录
下一章
×