我得到一個(gè)DataBufferas 輸入?yún)?shù),它是ByteBuffer. 現(xiàn)在我想記錄緩沖區(qū)的全部?jī)?nèi)容。此外,我必須將該緩沖區(qū)傳遞給外部庫。因此,由于我無法讀取ByteBuffer兩次,我要么必須重置緩沖區(qū),要么從String.問題:應(yīng)該首選以下哪種方法(或者是否有另一種更好的方法)?//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貢獻(xiàn)1842條經(jīng)驗(yàn) 獲得超13個(gè)贊
復(fù)制緩沖區(qū)以保留原始位置、限制和標(biāo)記值。
String?bufferContent?=?StandardCharsets.UTF_8.decode(bb.duplicate()).toString();
添加回答
舉報(bào)
0/150
提交
取消