Как избежать издержек, связанных с String.getBytes (Charset ch) - PullRequest
0 голосов
/ 22 февраля 2012

Используя String.getBytes(Charset ch), выделяет новый буфер, фактически он возвращает byte[]. Есть ли способ избежать этого? Я хотел бы иметь байтовый массив многократного использования и иметь строки, закодированные в этом буфере.

Ответы [ 3 ]

1 голос
/ 22 февраля 2012

Если вы похожи на меня, не владеете ByteBuffer, чтобы дополнить ответ Джона, вы также можете создать свою собственную реализацию OutputStream, упаковывающую ваш байтовый массив, и использовать OutputStreamWriter, чтобы записать строку в этот пользовательский OutputStream .

1 голос
/ 22 февраля 2012

Вы можете напрямую использовать API Charset и CharsetEncoder, в частности вызывая encode(CharBuffer, ByteBuffer, boolean). Однако я бы не ожидал, что он станет особенно приятным кодом.

0 голосов
/ 22 февраля 2012

Вы можете использовать

getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) 

//Copies characters from this string into the destination character array.

и управлять массивом самостоятельно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...