0
我使用CharBuffer來解碼我的應用程序中的字符串。 但是,當我使用CharBuffer.toString,它看起來像字符串對象創建每當toString方法被調用。 當我使用CharBuffer時,有什麼方法可以使用字符串池嗎? Follwing是我的方法,在此先感謝。java CharBuffer.toString創建太多對象
private CharBuffer charbuf = CharBuffer.allocate(32000);
private String read(ByteBuffer buf, CharsetDecoder decoder)
{
charbuf.clear();
while (buf.remaining() > 0)
{
CoderResult result = decoder.decode(buf, charbuf, true);
if (result == CoderResult.OVERFLOW)
{
throwInternalError();
}
if (result.isError())
{
char data = (char)buf.get();
if (result.isUnmappable())
{
charbuf.put('?');
}
else if (result.isMalformed())
{
charbuf.put(data);
}
}
}
charbuf.flip();
return charbuf.toString();
}
你想游泳什麼?您是否使用相同的'ByteBuffer'(或具有相同內容的ByteBuffers)重複調用此方法 – Thilo
是的,讀取方法的大多數結果是相同的。由於這種方法被稱爲非常流行,我喜歡將讀取方法的結果集中起來。 –