使用String.getBytes(Charset ch)
,分配一个新的缓冲区,实际上它返回一个byte[]
。有办法避免这种情况吗?我想要一个可重用的字节数组,并在这个缓冲区中编码字符串。
答案 0 :(得分:1)
您可以直接使用Charset
和CharsetEncoder
API,特别是调用encode(CharBuffer, ByteBuffer, boolean)
。但是,我不希望它最终成为特别令人愉快的代码。
答案 1 :(得分:1)
如果你像我一样不掌握ByteBuffer,为了补充Jon的答案,你也可以创建自己的包装字节数组的OutputStream实现,并使用OutputStreamWriter
将String写入此自定义{ {1}}。
答案 2 :(得分:-1)
您可以使用
getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)
//Copies characters from this string into the destination character array.
自己管理阵列。