FileChannel fileChannel2=new FileInputStream("D:\\abr.txt").getChannel(); Charset charset=Charset.forName("utf-8"); ByteBuffer byteBuffer=ByteBuffer.allocate(BIZE); while (fileChannel2.read(byteBuffer)!=-1){ charset.decode(byteBuffer); byteBuffer.flip(); CharBuffer charBuffer=charset.decode(byteBuffer); System.out.println(charBuffer.toString()); System.out.println("------------"); byteBuffer.clear(); }
1.解码:从通道中读取数据保存在ByteBuffer中,调用charset.decode(bytebuffer)进行对应格式的解码,并得到CharBuffer
2.编码:和解码互逆,把调用chareset.encode(CharBuffer),返回出特定编码后的ByteBuffer,放入通道
3.
Charset charset=Charset.forName("utf-8");
获取Charset对象