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
相关推荐
evans在进步3 天前
Tomcat NIO 工作原理详解:从 Acceptor、Poller 到容器处理链
java·tomcat·nio
二炮手亮子14 天前
从 BIO、NIO、AIO 到多路复用与 Netty
策略模式·nio
Bill FANG1 个月前
从原生Java NIO到Netty重构:充电桩Socket服务端高性能改造实战
java·重构·nio
gugucoding1 个月前
34.【Java】I/O流(下):NIO与文件操作
java·python·nio
萧瑟余晖1 个月前
Java深入解析篇九之NIO详解
java·网络·nio
Full Stack Developme1 个月前
Tomcat NIO连接器内部如何实现零拷贝 Session管理如何实现集群同步
java·tomcat·nio
Full Stack Developme1 个月前
MinIO 设计及工作原理
nio
易连EDI—EasyLink1 个月前
电动汽车供应链协同新范式:蔚来(NIO)企业级EDI平台建设实践
网络·人工智能·edi·nio·as2
我是唐青枫2 个月前
Java Netty 实战指南:从 NIO 线程模型到 TCP 编解码和心跳机制
java·tcp/ip·nio
2601_963932982 个月前
人流后多久来月经?内膜恢复周期与术后修护科普指南
nio