Charset及Buffer

来源:互联网 发布:gencode数据库 编辑:程序博客网 时间:2024/05/21 22:52

J2SE对字符与字节间的双向转换提供了支持。这些支持在java.nio.Charset包中、

 

有了Charset,就不需要自己去做编码的编解码了。

 

在J2SE API文档中,有一句话:

A named mapping between sequences of sixteen-bit Unicode code units and sequences of bytes.

它有两层意思:

1。 java中的字符都是用16位的Unicode表示的;

2.  byte流还有编码信息;我们用什么编码去解释这个byte流?

 

J2SE提供了大量的编码,我们直接用它就可以了。查看支持的Charset的方法:

 

 

常用的有US-ASCII、UTF-16、UTF-16BE、UTF-16LE、UTF-8;

 

通过Charset可以构建encoder和decoder,也可以直接用Charset的encoder和decoder方法。实现CharBuffer和ByteBuffer间的双向转换。

 

ByteBuffer、charBuffer都是继承自Buffer;之前有分析过ByteBuffer,其实就是对Buffer的封装;同类的类还有DoubleBuffer、FloatBuffer、IntBuffer、LongBuffer和shortBuffer;

 

ByteBuffer与byte[]的关系和Integer和Int的关系类似,都是对一些常用功能做了一层封装;使用起来更方便。

 

原创粉丝点击