• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

java-NIO学习-字符串存入ByteBuffer的几种方法

武飞扬头像
沐雪架构师
帮助1

一、ByteBuffer 结构

ByteBuffer 有以下重要属性

  • capacity

  • position

  • limit

一开始

学新通

写模式下,position 是写入位置,limit 等于容量,下图表示写入了 4 个字节后的状态

学新通

flip 动作发生后,position 切换为读取位置,limit 切换为读取限制

学新通

读取 4 个字节后,状态

学新通

clear 动作发生后,状态

学新通

compact 方法,是把未读完的部分向前压缩,然后切换至写模式

学新通

 二、字符串与 ByteBuffer 互转

  1.  
    public static void main(String[] args) {
  2.  
     
  3.  
    //字符串存入ByteBuffer
  4.  
     
  5.  
    //1 put bytes []
  6.  
    ByteBuffer buffer1=ByteBuffer.allocate(16);
  7.  
    buffer1.put("ni hao ma".getBytes());
  8.  
    debugAll(buffer1);
  9.  
     
  10.  
    //2 Charset
  11.  
    ByteBuffer buffer2 = StandardCharsets.UTF_8.encode("你好吗");
  12.  
    debugAll(buffer2);
  13.  
     
  14.  
    //3 wrap
  15.  
    ByteBuffer buffer3 = ByteBuffer.wrap("ni hao ma".getBytes());
  16.  
    debugAll(buffer2);
  17.  
     
  18.  
    // ByteBufffer 读取到字符串里
  19.  
    System.out.println(StandardCharsets.UTF_8.decode(buffer3).toString());
  20.  
     
  21.  
     
  22.  
    }
学新通

控制台输出:

学新通

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhgkhhke
系列文章
更多 icon
同类精品
更多 icon
继续加载