Java Buffer.flip() 方法及代码示例

反转当前缓冲区. 限制设置为当前位置, 然后位置设置为零. 若已定义标记, 则将其丢弃.

定义

public Buffer flip()

返回值

返回当前 Buffer

说明

在一系列通道读取或放置操作之后, 调用此方法用以准备一系列通道写入或相关获取操作.

在将数据从一个地方传输到另一个地方时, 此方法通常与那些紧凑的方法结合使用(链式调用).

示例

使用 flip() 方法反转当前缓冲区的示例

package com.yi21.buffer;

import java.nio.ByteBuffer;

public class Yi21BufferFlip {

    public static void main(String[] args) {

        ByteBuffer buffer = ByteBuffer.allocate(4);

        buffer.put((byte) 50);
        buffer.put((byte) 49);
        buffer.put((byte) 121);
        buffer.put((byte) 105);

        System.out.println("未 flip:");
        byte[] bs = new byte[4];
        int i = 0;
        while(buffer.hasRemaining()) {
            bs[i] = buffer.get();
            i ++;
        }
        System.out.println(new String(bs));

        System.out.println("flip 后:");
        buffer.flip();
        bs = new byte[4];
        i = 0;
        while(buffer.hasRemaining()) {
            bs[i] = buffer.get();
            i ++;
        }
        System.out.println(new String(bs));
    }

}

执行结果为 :

未 flip:

flip 后:
21yi