记录下-字符串(String)和ByteBuffer(NIO 缓冲区)之间的转换

记录下-字符串(String)和ByteBuffer(NIO 缓冲区)之间的转换

    @Test
    public void byteBufferString(){
//        1.字符串转为ByteBuffer
        ByteBuffer buffer = ByteBuffer.allocate(21);
        buffer.put("马上行计划管理".getBytes(StandardCharsets.UTF_8));
//        写模式 → 读模式
        buffer.flip();
//        2. Charset
        ByteBuffer charsetsBuffer = StandardCharsets.UTF_8.encode("马上行计划管理");
        Assert.isTrue(buffer.equals(charsetsBuffer),"转换失败");
//        3.wrap
        ByteBuffer wrapBuffer = ByteBuffer.wrap("马上行计划管理".getBytes(StandardCharsets.UTF_8));
        Assert.isTrue(wrapBuffer.equals(charsetsBuffer),"转换失败");

//        转字符串
//        1.
        String result = StandardCharsets.UTF_8.decode(buffer).toString();
        log.info(result);
//        2.
        byte[] bytes = new byte[charsetsBuffer.remaining()];
        charsetsBuffer.get(bytes);
        String result2 = new String(bytes, StandardCharsets.UTF_8);
        log.info(result2);
        Assert.isTrue(result2.equals(result),"转换失败");
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值