缓冲区实际上是一个容器对象,更直接的说,其实就是一个数组,在NIO 库中,所有数据都是用缓冲区处理的。在读取数据时,它是直接读到缓冲区中的; 在写入数据时,它也是写入到缓冲区中的;任何时候访问NIO 中的数据,都是将它放到缓冲区中。而在面向流I/O 系统中,所有数据都是直接写入或者直接将数据读取到Stream 对象中。在NIO 中,所有的缓冲区类型都继承于抽象类Buffer,最常用的就是ByteBuffer,对于Java 中的基本类型,基本都有一个具体Buffer 类型与之相对应,它们之间的继承关系如下图所示:

下面是一个简单的使用IntBuffer 的例子:

import java.nio.IntBuffer;
public class IntBufferDemo {
public static void main(String[] args) {// 分配新的int 缓冲区,参数为缓冲区容量// 新缓冲区的当前位置将为零,其界限(限制位置)将为其容量。它将具有一个底层实现数组,其数组偏移量将为零。IntBuffer buffer = IntBuffer.allocate(8);for (int i = 0; i < buffer.capacity(); ++i) {int j = 2 * (i + 1);// 将给定整数写入此缓冲区的当前位置,当前位置递增buffer.put(j);}// 重设此缓冲区,将限制设置为当前位置,然后将当前位置设置为0buffer.flip();// 查看在当前位置和限制位置之间是否有元素while (buffer.hasRemaining()) {// 读取此缓冲区当前位置的整数,然后当前位置递增int j = buffer.get();System.out.print(j + " ");}}
}

缓冲区Buffer-Buffer操作基本API相关推荐

  1. Buffer缓冲区的相关操作

    目录 一.什么是Buffer? 二.buffer的创建 1.alloc 2.allocUnsafe 3.from 三.Buffer的操作 1.Buffer与字符串的转换 2.Buffer的读写 四.B ...

  2. 缓冲区溢出(buffer overflow)机理分析

    http://blog.sina.com.cn/s/blog_4c72721c010008vt.html ##########################################     ...

  3. php ouput buffer,Redis配置详解-客户端缓冲区 output buffer

    客户端缓冲区 output buffer 大概已经知道Redis是一个内存数据库,这意味着所有的数据都由RAM直接管理和提供的.因此Redis有着卓越的交付性能,Redis可以以亚毫秒级的延迟处理几万 ...

  4. Direct Byte Buffer的操作

    本地代码通过提供一个本地C字节的数组作为基础,创建一个能够被Java应用程序使用的一个直接字节缓存. unsigned char* buffer = (unsigned char*) malloc(1 ...

  5. 基于mdm9206 threadx_os的I2c操作相关API介绍

    大家好,今天小白给大家介绍一下,关于mdm9206 threadx_os的I2c操作相关的API,希望能和大家一起交流学习. 一:I2C简介 I2C是一种2线总线,用于将低速外设连接到处理器或微控制器 ...

  6. VB 文件常用操作相关API

    下面是windows中提供的对于文件进行操作的API函数及其功能: Windows API函数 功能 CloseHandle 关闭一个内核对象.其中包括文件.文件映射.进程.线程.安全和同步对象等.涉 ...

  7. NIO学习笔记——缓冲区(Buffer)详解

    缓冲区是包在一个对象内的基本数据元素数组,Buffer类相比一个简单的数组的优点是它将关于数据的数据内容和信息包含在一个单一的对象中. Buffer的属性 容量(capacity):缓冲区能够容纳的数 ...

  8. java 缓冲区中的数据存入缓冲区中_java8中NIO缓冲区(Buffer)的数据存储详解|chu...

    java8新特性NIO缓冲区(Buffer)的数据存储. ByteBuffer,CharBuffer,ShortBuffer,IntBuffer,LongBuffer,FloatBuffer, Dou ...

  9. 什么是缓冲区(buffer),什么是缓存(cache)

    缓冲区 缓冲区是内存空间的一部分.也就是说,在内存空间中预留了一定的存储空间,这些存储空间用来缓冲输入或输出的数据,这部分预留的空间就叫做缓冲区.缓冲区根据其对应的是输入设备还是输出设备,分为输入缓冲 ...

最新文章

  1. 随机数范围扩展方法总结
  2. java面试题37 关于对象成员占用内存的说法哪个正确?( )
  3. 打造工业级推荐系统(三):推荐系统的工程实现与架构优化
  4. Spark算子:统计RDD分区中的元素及数量
  5. linux更新硬件时钟,Linux内核“11分钟模式”可以做的最大的硬件时钟更新是什么?...
  6. ASP.NET判断是否为手机登录
  7. java 如何查看jdk版本位数
  8. hihoCoder #1174:拓扑排序#183;一
  9. 基于python的民宿旅馆消费数据分析系统
  10. 远程清卡失败服务器内部错误,​航天信息远程清卡失败怎么处理
  11. 使用腾讯云COS对象存储(详细流程)
  12. 佛罗里达大学计算机博士,2020年佛罗里达大学博士含金量
  13. 华三交换机开机dhcp snooping
  14. word里添加加行号可编辑的代码方式,超级方便简单
  15. 电脑微信聊天记录迁移——备份与恢复
  16. 如何架设一个属于自己的Discuz论坛
  17. 合作伙伴、客户与微软一起,成为数字化转型“三胞胎”
  18. Python编程:itertools库排列组合
  19. java dump文件怎么生成和分析-JMAP用法
  20. Frontline软件CPAS

热门文章

  1. Vista新特征(Features)(英文)
  2. 现在java就业前景怎么样?现在入行晚了吗
  3. meta http-equiv=X-UA-Compatible content=IE=7 /意思是将IE8用IE7进行渲染,使网页在IE8下正常...
  4. POJ 3648 Wedding
  5. VS2010 IDE新特性随笔
  6. 【Spring学习】IoC、DI、AOP入门学习
  7. Java基本类型与运算
  8. PL/SQL Developer结合oracle精简客户端配置说明
  9. 一个复杂系统的拆分改造实践
  10. 第二节:思维导图学习Shell脚本编程之命令之美