为了账号安全,请及时绑定邮箱和手机立即绑定

如何最好地读取 ByteBuffer 两次?

如何最好地读取 ByteBuffer 两次?

HUWWW 2023-03-31 14:47:27
我得到一个DataBufferas 输入参数,它是ByteBuffer. 现在我想记录缓冲区的全部内容。此外,我必须将该缓冲区传递给外部库。因此,由于我无法读取ByteBuffer两次,我要么必须重置缓冲区,要么从String.问题:应该首选以下哪种方法(或者是否有另一种更好的方法)?//Input:DataBuffer dataBuffer;//common logging:ByteBuffer bb = dataBuffer.asByteBuffer();String bufferContent = StandardCharsets.UTF_8.decode(bb).toString();LOGGER.info(bufferContent);//then either reset the buffer:bb.rewind();externalService.call(dataBuffer);//or convert the string content back to buffer:externalService.call(new DefaultDataBufferFactory().wrap(bufferContent.getBytes()));
查看完整描述

1 回答

?
红颜莎娜

TA贡献1842条经验 获得超12个赞

复制缓冲区以保留原始位置、限制和标记值。

String bufferContent = StandardCharsets.UTF_8.decode(bb.duplicate()).toString();


查看完整回答
反对 回复 2023-03-31
  • 1 回答
  • 0 关注
  • 98 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信