DoubleBuffer mark() methods in Java with Examples

2025 年 3 月 25 日 | 阅读 3 分钟

java.nio.DoubleBuffer 有一个 mark() 函数。使用 DoubleBuffer 类将此 DoubleBuffer 的当前位置标记为缓冲区的标记。

语法

返回值:该方法将缓冲区的标记设置为当前位置并返回缓冲区。

示例 1

提供的 Java 代码演示了如何使用 DoubleBuffer 处理双精度缓冲区。软件使用双精度数数组创建一个 DoubleBuffer,然后将缓冲区移动到索引 3。然后使用 mark() 方法在当前位置设置一个标记。在将位置推进到索引 5 后,将打印当前位置。在调用 reset() 方法将其返回到之前标记的点后,将再次打印该位置。如果 reset 位置无效(小于 mark),则会引发并处理 InvalidMarkException。

实施

文件名:bufferMarkExample1.java

输出

 
The position before reset is given by : 5
The position after reset is given by : 3   

示例 2

如 Java 代码示例所示,DoubleBuffer 可用于操作双精度值缓冲区。通过调用 mark() 函数设置标记,从双精度数数组创建 DoubleBuffer,并将其位置调整到索引三。然后,使用索引 1(位于标记位置之前)作为新位置。应用程序打印当前位置,尝试将其重置到指定位置,然后再次打印该位置。由于重置位置(1)小于标记点(3),因此将抛出并捕获 InvalidMarkException,并显示异常的详细信息。

实施

文件名:bufferMarkExample2.java

输出

 
The position before reset is given by : 1
The New position is less than the position than marked before 
The Exception thrown is : java.nio.InvalidMarkException