package com.sico.pck01_nio;
import java.nio.ByteBuffer;
import java.nio.CharBuffer;
import java.nio.charset.CharacterCodingException;
import java.nio.charset.Charset;
import java.nio.charset.CharsetDecoder;
import java.nio.charset.CharsetEncoder;
import java.util.Map.Entry;
import java.util.Set;
import java.util.SortedMap;
import org.junit.Test;
/**
- @author Administrator
- 字符集CharSet
*/
public class Nio04 {
/*
* 查看多少种字符集
*/
@Test
public void fun01(){
SortedMap<String, Charset> charSets = Charset.availableCharsets();
Set<Entry<String, Charset>> entrySet = charSets.entrySet();
int i=0;
for (Entry<String, Charset> ele:entrySet) {
i++;
System.out.println(ele.getKey()+">>>"+ele.getValue());
}
System.out.println("一共:"+i+"种字符集!");
}
/**
* 此处注意:flip()的运用看position的位置是否能获取到我们想要的数据
* @throws CharacterCodingException
*/
@Test
public void fun02() throws CharacterCodingException{
Charset charSet01 = Charset.forName("GBK");
CharsetEncoder ce = charSet01.newEncoder();//編碼器
CharsetDecoder cd = charSet01.newDecoder();//解码器
CharBuffer cb=CharBuffer.allocate(1024);
cb.put("我爱你");
cb.flip();
ByteBuffer ebb = ce.encode(cb);
for(byte ele:ebb.array()){
System.out.print(ele+" ");
}
CharBuffer dcb = cd.decode(ebb);
for(char ele:dcb.array()){
System.out.print(ele);
}
}
}