Java Buffer limit()方法及示例

来源:这里教程网 时间:2026-02-17 20:37:15 作者:

Java Buffer limit()方法及示例

java.nio.Buffer类的 limit() 方法是用来设置这个缓冲区的极限。如果位置大于新的极限,那么它将被设置为新的极限。如果标记被定义并且大于新的极限,那么它将被丢弃。

语法

public Buffer limit(int newLimit)

返回值: 该方法返回这个缓冲区。

下面是说明limit()方法的例子。

例子 1 :

// Java program to demonstrate// limit() method  import java.nio.*;import java.util.*;  public class GFG {    public static void main(String[] args)    {        // defining and allocating ByteBuffer        // using allocate() method        ByteBuffer byteBuffer            = ByteBuffer.allocate(4);          // put byte value in byteBuffer        // using put() method        byteBuffer.put((byte)20);        byteBuffer.put((byte)30);          // Typecast byteBuffer to buffer        Buffer buffer = (Buffer)byteBuffer;          // print the byte buffer        System.out.println("Buffer before operation: "                           + Arrays.toString(                                 (byte[])buffer.array())                           + "\nPosition: "                           + buffer.position()                           + "\nLimit: "                           + buffer.limit());          // Limit the Buffer        // using limit() method        buffer.limit(1);          // print the buffer        System.out.println("\nBuffer after operation: "                           + Arrays.toString(                                 (byte[])buffer.array())                           + "\nPosition: "                           + buffer.position()                           + "\nLimit: "                           + buffer.limit());    }}

输出:

Buffer before operation: [20, 30, 0, 0]Position: 2Limit: 4Buffer after operation: [20, 30, 0, 0]Position: 1Limit: 1

例子 2 :

// Java program to demonstrate// limit() method  import java.nio.*;import java.util.*;  public class GFG {    public static void main(String[] args)    {        // defining and allocating ByteBuffer        // using allocate() method        ByteBuffer byteBuffer            = ByteBuffer.allocate(5);          // put byte value in byteBuffer        // using put() method        byteBuffer.put((byte)20);        byteBuffer.put((byte)30);        byteBuffer.put((byte)40);          // Typecast byteBuffer to buffer        Buffer buffer = (Buffer)byteBuffer;          // mark will be going to discarded by limit()        buffer.mark();          // print the buffer        System.out.println("Buffer before operation: "                           + Arrays.toString(                                 (byte[])buffer.array())                           + "\nPosition: "                           + buffer.position()                           + "\nLimit: "                           + buffer.limit());          // Limit the Buffer        // using limit() method        buffer.limit(4);          // print the buffer        System.out.println("\nBuffer after operation: "                           + Arrays.toString(                                 (byte[])buffer.array())                           + "\nPosition: "                           + buffer.position()                           + "\nLimit: "                           + buffer.limit());    }}

输出:

Buffer before operation: [20, 30, 40, 0, 0]Position: 3Limit: 5Buffer after operation: [20, 30, 40, 0, 0]Position: 3Limit: 4

参考资料: https://docs.oracle.com/javase/9/docs/api/java/nio/Buffer.html#limit-int-

相关推荐