nio 是 java New IO 的简称,为 jdk1.4 里提供的新 api 。 Sun 官方标榜的特性如下:
– 为所有的原始类型提供 (Buffer) 缓存支持。
– 字符集编码解码解决方案。
– Channel :一个新的原始 I/O 抽象。
– 支持锁和内存映射文件的文件访问接口。
– 提供多路 (non-bloking) 非阻塞式的高伸缩性网络 I/O
其中的Charset类可用来处理字节序列和字符序列(字符串)的转换关系,使用Charset类能够创建编码器和解码器。
而之后1.7更直接在java.nio.charset包下添加了 StandardCharsets类,能方便调用字符集常量
如
package java.nio.charset;
/**
* Constant definitions for the standard {@link Charset Charsets}. These
* charsets are guaranteed to be available on every implementation of the Java
* platform.
*
* @see <a href="Charset#standard">Standard Charsets</a>
* @since 1.7
*/
public final class StandardCharsets {
private StandardCharsets() {
throw new AssertionError("No java.nio.charset.StandardCharsets instances for you!");
}
/**
* Seven-bit ASCII, a.k.a. ISO646-US, a.k.a. the Basic Latin block of the
* Unicode character set
*/
public static final Charset US_ASCII = Charset.forName("US-ASCII");
/**
* ISO Latin Alphabet No. 1, a.k.a. ISO-LATIN-1
*/
public static final Charset ISO_8859_1 = Charset.forName("ISO-8859-1");
/**
* Eight-bit UCS Transformation Format
*/
public static final Charset UTF_8 = Charset.forName("UTF-8");
一般使用时转字符串即可,如
StandardCharsets.UTF_8.name() //输出UTF-8
可获取Charset里支持的字符集输出
SortedMap<String,Charset> map = Charset.availableCharsets();
for(String alias : map.keyset()){
System.out.println(alias);
}