ByteBuf 常用操作

字节操作

ByteBuf buffer = Unpooled.buffer(10); ByteBuf byteBuf = Unpooled.copiedBuffer("hello,world!", Charset.forName("utf-8")); int len = byteBuf.readableBytes(); //可读的字节数12 System.out.println("len=" + len); //使用for取出各个字节 for (int i = 0; i < len; i++) { System.out.println((char) byteBuf.getByte(i)); // 强行转为字符串,否则会直接打印ASCII码 }//按照某个范围读取 System.out.println(byteBuf.getCharSequence(0, 4, Charset.forName("utf-8"))); System.out.println(byteBuf.getCharSequence(4, 6, Charset.forName("utf-8"))); ByteBuf byteBuf1 = Unpooled.copiedBuffer(byteBuf);

ByteBuf转字节数组
byte[] bytes = ByteBufUtil.getBytes(byteBuf1);

字节读取
ByteArrayInputStream inputStream = new ByteArrayInputStream(bytes); byte[] newBytes = new byte[bytes.length]; while (inputStream.read(newBytes)!=-1){ inputStream.close(); System.out.println(new String(newBytes)); }ByteArrayInputStream inputStream1 = new ByteArrayInputStream(bytes,2,5); byte[] newBytes1 = new byte[bytes.length]; while (inputStream1.read(newBytes1)!=-1){ inputStream1.close(); System.out.println(new String(newBytes1)); }

    推荐阅读