char[]与byte[]相互转换
Charset类
Charset提供encode与decode分别对应char[]到byte[]的编码和byte[]到char[]的解码,具体代码如下:
Chaeset charset=Charset.forName("UTF-8");
ByteBuffer byteBuffer=charset.encode(String);//why string?
byte[] ba=byteBuffer.array();//转化成byte[]
CharBuffer charBuffer=charset.decode(byteBuffer);
char[] ca=charBuffer.array();//转化成char[]
这里编码与解码都在一个类中完成,通过 forName 设置编解码字符集,这样更容易统一编码格式。
ByteBuffer 类
ByteBuffer类提供一种char和byte之间的软转换(char转byte),他们之间转换不需要编码与解码,只是把一个16bit的char拆分成两个8bit的byte表示,他们的实际值并没有被修改,仅仅是数据类型做了转换。具体代码如下:
ByteBuffer heapByteBuffer=ByteBuffer.allocate(1024);
ByteBuffer byteBuffer=heapByteBuffer.putChar(c);//c为char[]
Java编码与解码实践
本文深入探讨了Java中字符数组(char[])与字节数组(byte[])的相互转换过程,利用Charset类进行编码与解码,确保字符集统一。同时介绍了ByteBuffer类如何实现char与byte之间的软转换,无需编码解码步骤。
4203

被折叠的 条评论
为什么被折叠?



