1.remaining();返回当前位置与limit之间得元素数。

int[] intArray={1,2,3,4};
IntBuffer intBuffer=IntBuffer.wrap(intArray);
intBuffer.limit(3);
intBuffer.position(1);
System.out.println(intBuffer.remaining());

2.isDirect() 判断是否为直接缓冲区。

ByteBuffer byteBuffer=ByteBuffer.allocateDirect(100);
System.out.println(byteBuffer.isDirect());

3.clear()还原缓冲区得状态,是状态,不是数据;比如将position=0.market丢失掉。

byte[] byteArray=new byte[]{1,2,3};
ByteBuffer byteBuffer=ByteBuffer.wrap(byteArray);
byteBuffer.position(2);
byteBuffer.limit(3);
byteBuffer.mark(); byteBuffer.clear();
System.out.println("position:"+byteBuffer.position()+";limit:"+byteBuffer.limit());
try {
byteBuffer.reset();
} catch (Exception e) {
System.out.println("market已经丢失");
}

4.flip() 向缓冲区写入一些数据后,下一步直接读取缓冲区中得数据之前,以改变limit与position得值。

byte[] byteArray=new byte[]{1,2,3};
ByteBuffer byteBuffer=ByteBuffer.wrap(byteArray);
byteBuffer.position(2);
byteBuffer.mark(); byteBuffer.flip();
System.out.println("position:"+byteBuffer.position()+";limit:"+byteBuffer.limit());
try {
byteBuffer.reset();
} catch (Exception e) {
System.out.println("market已经丢失");
}

5.hasArray()判断此缓冲区是否具有可访问得底层实现数组。

ByteBuffer byteBuffer=ByteBuffer.allocate(100);
byteBuffer.put((byte) 1);
byteBuffer.put((byte) 2);
System.out.println(byteBuffer.hasArray()); ByteBuffer byteBuffer2=ByteBuffer.allocateDirect(100);
byteBuffer2.put((byte) 1);
byteBuffer2.put((byte) 2);
System.out.println(byteBuffer2.hasArray());

6.hasRemaining() 判断当前位置与限制之间是否有元素。

byte[] byteArray=new byte[]{1,2,3};
ByteBuffer bytebuffer=ByteBuffer.wrap(byteArray);
bytebuffer.limit(3);
bytebuffer.position(2);
System.out.println(bytebuffer.hasRemaining()+";"+bytebuffer.remaining());

7.rewind()  position置为0,标记清除掉,limit不变。

8.clear() position置为0,limit=capacity,market=-1.清除缓冲区得状态。

9.List.toArrat(T[])  转成数组。

ByteBuffer buffer1=ByteBuffer.wrap(new byte[]{'a','b','c'});
ByteBuffer buffer2=ByteBuffer.wrap(new byte[]{'x','y','z'});
ByteBuffer buffer3=ByteBuffer.wrap(new byte[]{'1','2','3'});
List<ByteBuffer> list=new ArrayList<ByteBuffer>();
list.add(buffer1);
list.add(buffer2);
list.add(buffer3); ByteBuffer[] byteBufferArray=new ByteBuffer[list.size()];
list.toArray(byteBufferArray);
System.out.println(byteBufferArray.length);
for(int i=0;i<byteBufferArray.length;i++){
ByteBuffer eachByteBuffer=byteBufferArray[i];
while (eachByteBuffer.hasRemaining()) {
System.out.print((char) eachByteBuffer.get());
}
System.out.println();
}

NIO基础方法一的更多相关文章

  1. 从零开始学 Web 之 ES6(三)ES6基础语法一

    大家好,这里是「 从零开始学 Web 系列教程 」,并在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公众号:Web前端之巅 博客园:ht ...

  2. Spring Framework------>version4.3.5.RELAESE----->Reference Documentation学习心得----->使用spring framework的IoC容器功能----->方法一:使用XML文件定义beans之间的依赖注入关系

    XML-based configuration metadata(使用XML文件定义beans之间的依赖注入关系) 第一部分 编程思路概述 step1,在XML文件中定义各个bean之间的依赖关系. ...

  3. JBOSS通过Apache负载均衡方法一:使用mod_jk

    JBOSS通过Apache负载均衡方法一:使用mod_jk   本文第一.二节分别对Linux环境下前端使用Apache以及windows环境下前端使用IIS通过AJP协议和后端的JBOSS通信实现负 ...

  4. centos6.5下oracle11g开机自动启动方法一

    转裁于 方法一 https://blog.csdn.net/wx5040257/article/details/77875690 方法二  https://blog.csdn.net/wx504025 ...

  5. mybatis由浅入深day02_2一对一查询_2.2方法一:resultType

    2 一对一查询 2.1 需求(查询所有订单信息,关联查询创建订单的用户信息) 查询所有订单信息,关联查询创建订单的用户信息 注意:因为一个订单信息只会是一个人下的订单,所以从查询订单信息出发关联查询用 ...

  6. 头像文件上传 方法一:from表单 方法二:ajax

    方法一:from表单 html 设置form表单,内包含头像预览div,内包含上传文件input 设置iframe用来调用函数传参路径 <!--表单提交成功后不跳转处理页面,而是将处理数据返回给 ...

  7. vue抽取公共方法———方法一

    方法一:Vue插件 1.概述 作用:满足vue之外的需求,特定场景的需求 比如说,让你在每个单页面组件里,都可以调用某个方法(公共方法),或者共享某个变量等 2.使用方法 [声明插件]- [写插件]- ...

  8. 登录操作(方法一:设置flag标志位)

    登录操作(方法一:设置flag标志位) user_name="star"passwoed='123'passed_authentication=Falsecount=0for i ...

  9. JS数组 二维数组 二维数组的表示 方法一: myarray[ ][ ];方法二:var Myarr = [[0 , 1 , 2 ],[1 , 2 , 3, ]]

    二维数组 一维数组,我们看成一组盒子,每个盒子只能放一个内容. 一维数组的表示: myarray[ ] 二维数组,我们看成一组盒子,不过每个盒子里还可以放多个盒子. 二维数组的表示: myarray[ ...

随机推荐

  1. 在命令提示符下,运行Java程序时,提示"找不到或无法加载主类"

    小白:在命令提示符下,运行Java程序时,提示"找不到或无法加载主类". 大神:运行Java程序的作用是让Java解释器装载,检验并运行字节码文件(.class).因此,在运行Ja ...

  2. 【iOS翻译】App启动时的响应过程

    Responding to the Launch of Your App Initialize your app’s data structures, prepare your app to run, ...

  3. Android 菜单 使用XML

    @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to th ...

  4. Linux - CentOS 7 通过Yum源安装 MySql 5.7

    添加MySQL Yum存储库 从官网下载最新的mysql源 官网地址:https://dev.mysql.com/downloads/repo/yum/ 选择并下载适用于平台的发行包. 然后,在Lin ...

  5. PKUWC 2020 游记

    由于 CSP 的暴力分太高,我来了这里. 我将告诉大家,我在暴力分不高时是个怎样的 sb 选手. Day -17 又停课啦. 旁边坐着 pb,每天刷题特别猛,然后就凸显了我有多颓. 怎么想打开个猫国都 ...

  6. Python 学习笔记(基础篇)

    背景:今年开始搞 Data science ,学了 python 小半年,但一直没时间整理整理.这篇文章很基础,就是根据廖雪峰的 python 教程 整理了一下基础知识,再加上自己的一些拓展,方便自己 ...

  7. 一起学Spring之三种注入方式及集合类型注入

    本文主要讲解Spring开发中三种不同的注入方式,以及集合数据类型的注入,仅供学习分享使用,如有不足之处,还请指正. 概述 Spring的注入方式一共有三种,如下所示: 通过set属性进行注入,即通过 ...

  8. pandas 过滤

    条件过滤 通过loc进行行过滤,也可对过滤后的行进行赋值 import pandas as pd df = pd.DataFrame({"name": ["yang&qu ...

  9. 如何修改CAD字体颜色?试试这种方法

    CAD中编辑图纸的时候,使用的CAD制图软件来进行绘制,图纸中的CAD字体颜色都是默认的颜色,这样不方便进行查看.这个时候就需要修改CAD字体颜色了,那么如何修改CAD字体颜色呢?具体要怎么来进行操作 ...

  10. phpmyadmin 4.8.1 远程文件包含漏洞(CVE-2018-12613)

    漏洞详情 范围 phpMyAdmin 4.8.0和4.8.1 原理 首先在index.php 50-63行代码 $target_blacklist = array ( 'import.php', 'e ...