java的duplicate用法_Java ByteBuffer duplicate()用法及代码示例
java.nio.ByteBuffer类的duplicate()方法用于创建共享该缓冲区内容的新字节缓冲区。
新缓冲区的内容就是该缓冲区的内容。对该缓冲区内容的更改将在新缓冲区中可见,反之亦然;这两个缓冲区的位置,限制和标记值将是独立的。
新缓冲区的容量,限制,位置和标记值将与此缓冲区相同。当且仅当该缓冲区是直接缓冲区时,新缓冲区才是直接缓冲区;当且仅当该缓冲区是只读缓冲区时,新缓冲区才是只读缓冲区。
用法:
public abstract ByteBuffer duplicate()
返回值:此方法返回承载先前字节缓冲区内容的新字节缓冲区。
下面是说明duplicate()方法的示例:
范例1:使用直接ByteBuffer
// Java program to demonstrate
// duplicate() method
// Using direct ByteBuffer
import java.nio.*;
import java.util.*;
public class GFG {
public static void main(String[] args)
{
// Declaring the capacity of the ByteBuffer
int capacity = 4;
// Creating the ByteBuffer
try {
// creating object of ByteBuffer
// and allocating size capacity
ByteBuffer bb1 = ByteBuffer.allocate(capacity);
// putting the int to byte typecast value value in ByteBuffer
bb1.put((byte)20);
bb1.put((byte)30);
bb1.put((byte)40);
bb1.put((byte)50);
bb1.rewind();
// print the Original ByteBuffer
System.out.println("Original ByteBuffer: "
+ Arrays.toString(bb1.array()));
// Creating a duplicate copy of ByteBuffer
// using duplicate() method
ByteBuffer bb2 = bb1.duplicate();
// print the duplicate copy of ByteBuffer
System.out.print("\nDuplicate ByteBuffer: "
+ Arrays.toString(bb2.array()));
}
catch (IllegalArgumentException e) {
System.out.println("Exception thrown : " + e);
}
catch (ReadOnlyBufferException e) {
System.out.println("Exception thrown : " + e);
}
}
}
输出:
Original ByteBuffer: [20, 30, 40, 50]
Duplicate ByteBuffer: [20, 30, 40, 50]
范例2:使用只读ByteBuffer
// Java program to demonstrate
// duplicate() method
// using read-only ByteBuffer
import java.nio.*;
import java.util.*;
public class GFG {
public static void main(String[] args)
{
// Declaring the capacity of the ByteBuffer
int capacity = 4;
// Creating the ByteBuffer
try {
// creating object of ByteBuffer
// and allocating size capacity
ByteBuffer bb1 = ByteBuffer.allocate(capacity);
// putting the int to byte typecast value in ByteBuffer
bb1.put((byte)20);
bb1.put((byte)30);
bb1.put((byte)40);
bb1.put((byte)50);
bb1.rewind();
// print the Original ByteBuffer
System.out.println("Original ByteBuffer: "
+ Arrays.toString(bb1.array()));
// Creating a read-only copy of ByteBuffer
// using asReadOnlyBuffer() method
ByteBuffer readonly = bb1.asReadOnlyBuffer();
// print the read-only copy of ByteBuffer
System.out.print("\nRead-only ByteBuffer: ");
while (readonly.hasRemaining())
System.out.print(readonly.get() + ", ");
System.out.println("");
// Rewinding the readonly ByteBuffer
readonly.rewind();
// Creating a duplicate copy of ByteBuffer
// using duplicate() method
ByteBuffer bb2 = readonly.duplicate();
// print the duplicate copy of ByteBuffer
System.out.print("\nDuplicate copy of read-only ByteBuffer: ");
while (bb2.hasRemaining())
System.out.print(bb2.get() + ", ");
System.out.println("");
}
catch (IllegalArgumentException e) {
System.out.println("Exception thrown : " + e);
}
catch (ReadOnlyBufferException e) {
System.out.println("Exception thrown : " + e);
}
}
}
输出:
Original ByteBuffer: [20, 30, 40, 50]
Read-only ByteBuffer: 20, 30, 40, 50,
Duplicate copy of read-only ByteBuffer: 20, 30, 40, 50,
java的duplicate用法_Java ByteBuffer duplicate()用法及代码示例相关推荐
- java 四则混合运算_Java实现四则混合运算代码示例
使用栈来实现,可以处理运算优先级. 使用自然四则运算表达式即可,如:4+(3*(3-1)+2)/2.无需把表达式先转换为逆波兰等形式. package com.joshua.cal; import j ...
- java四则混合运算_Java实现四则混合运算代码示例
使用栈来实现,可以处理运算优先级. 使用自然四则运算表达式即可,如:4+(3*(3-1)+2)/2.无需把表达式先转换为逆波兰等形式. package com.joshua.cal; import j ...
- Android Java使用JavaMail API发送和接收邮件的代码示例
JavaMail是Oracle甲骨文开发的Java邮件类API,支持多种邮件协议,这里我们就来看一下Java使用JavaMail API发送和接收邮件的代码示例 使用Javamail发送邮件,必需的j ...
- java isempty用法_Java ArrayList isEmpty() 使用方法及示例
Java ArrayList isEmpty() 使用方法及示例 Java ArrayList isEmpty()方法用于检查arraylist是否为空. 该isEmpty()方法的语法为: arra ...
- java并发编程代码示例_java并发编程之同步器代码示例
java并发编程之同步器代码示例 发布时间:2020-09-08 16:53:41 来源:脚本之家 阅读:58 作者:Blessing_H 同步器是一些使线程能够等待另一个线程的对象,允许它们协调动作 ...
- java touch创建文件_Java FileUtils.touch方法代碼示例
本文整理匯總了Java中org.apache.commons.io.FileUtils.touch方法的典型用法代碼示例.如果您正苦於以下問題:Java FileUtils.touch方法的具體用法? ...
- java使用drawtext重叠_Java Graphics.drawText方法代碼示例
本文整理匯總了Java中org.eclipse.draw2d.Graphics.drawText方法的典型用法代碼示例.如果您正苦於以下問題:Java Graphics.drawText方法的具體用法 ...
- java nio keyiterator.remove()_Java SelectionKey.isValid方法代碼示例
本文整理匯總了Java中java.nio.channels.SelectionKey.isValid方法的典型用法代碼示例.如果您正苦於以下問題:Java SelectionKey.isValid方法 ...
- java结束全部操作代码_Java创建与结束线程代码示例
这篇文章主要介绍了Java创建与结束线程代码示例,小编觉得挺不错的,这里分享给大家,供需要的朋友参考. 本文讲述了在Java中如何创建和结束线程的最基本方法,只针对于Java初学者.一些高级知识如线程 ...
- java创建线程代码_Java创建与结束线程代码示例
本文讲述了在Java中如何创建和结束线程的最基本方法,只针对于Java初学者.一些高级知识如线程同步.调度.线程池等内容将会在后续章节中逐步深入. 创建线程 创建普通线程有两种方式,继承Thread类 ...
最新文章
- Python3+Selenium3 之滚动条操作实例与单选框的实例演示
- N-MOS 2N7002晶体管
- Mybatis系列(三):Mybatis实现关联表查询
- Linux shell编程(二):shell语法
- java笔记4-类型转换
- linux通过进程名查找进程,Linux下通过进程名获得进程号
- [vue] 写出多种定义组件模板的方法
- 基于or1200最小sopc系统搭建(一)--搭建及仿真(DE2,DE2-70)
- android 8.1.0怎么截屏,vivo Z1i怎么截屏?4种vivo Z1i截图方法
- 矩阵等式 matrix identity(numpy仿真)
- 利用HtmlAgilityPack库进行HTML数据抓取
- UEFI+GPT双硬盘安装Win10+Ubuntu16.04双系统
- php微信公众号图文回复,微信公众号回复图文消息——2018年6月6日
- 滴滴校招编程题-田径运动会比赛排名
- 幸存与否 ——泰坦尼克号沉船事件数据分析*
- 使用css设置div块实现阴影呈现3d效果
- C++:构造函数以及析构函数
- opengl对图像进行腐蚀和膨胀
- PyQT5 (四十三) 在 QTableWidget 表格中设置单元格的字体和颜色 的案例
- windows10 自带的office突然无缘故被卸载了