nio中ByteBuffer使用

创建ByteBuffer
java 复制代码
 ByteBuffer buffer = ByteBuffer.allocate(10);
 
 // 字符串转 bytebuffer
 ByteBuffer buffer01 = Charset.defaultCharset().encode("hello world");
ByteBuffer buffer02 = ByteBuffer.wrap("hello".getBytes());
ByteBuffer buffer03 = StandardCharsets.UTF_8.encode("hehe");

//  buffer转字符串
CharBuffer decode = StandardCharsets.UTF_8.decode(buffer02);
ByteBuffer结构
  • position : 读取或者写入的指针位置
  • limit : 读取或者写入限制位置
  • capacity : 容量
常用方法
  • put() :往buffer里面添加数据,,, 也可以通过channel读
  • get() : 会获取一个字节的数据,,指针往后走
  • get(i) : 获取指定位置的数据,,指针不会动
  • flip() : 切换到读模式,,,, position变为0 ,,limit变为数据长度
  • clear() : 切换到写模式 ,, position变成0,,limit变成 capacity
  • compact() : 压缩,有的时候数据读了一部分,没读完,又需要写入新的数据,compact将position变成剩余数据的长度,limit变成capacity
  • mark() 和 reset(): 有的部分需要反复的读,,用mark()设置一个标记, reset()回滚到那个标记
  • hasRemaining() : 是否有剩余字节可读写
  • rewind() : 将position变为0
相关推荐
刘婉晴2 天前
【Java】NIO 简单介绍
java·nio
a587693 天前
Java核心概念精讲:TCP与UDP的区别、Java NIO的几个核心组件与HTTP和HTTPS的区别等(46-50)
java·面试·nio
MuMuMu#3 天前
JAVA NIO学习笔记基础强化学习总结
java·学习·nio
我叫汪枫4 天前
《Java餐厅的待客之道:BIO, NIO, AIO三种服务模式的进化》
java·开发语言·nio
青鱼入云7 天前
java面试中经常会问到的IO、NIO问题有哪些(基础版)
java·面试·nio
奔跑吧邓邓子7 天前
【Java实战⑳】从IO到NIO:Java高并发编程的飞跃
java·实战·nio·高并发编程
编啊编程啊程8 天前
Netty从0到1系列之Selector
java·spring boot·spring cloud·java-ee·kafka·maven·nio
鼠鼠我捏,要死了捏17 天前
深入解析Java NIO多路复用原理与性能优化实践指南
java·性能优化·nio
码luffyliu1 个月前
Java NIO 核心原理与秋招高频面试题解析
java·nio
带只拖鞋去流浪1 个月前
Java文件读写(IO、NIO)
java·开发语言·nio