Charset的基本运用以及ByteBuffer-position的注意点
2017-09-13 19:31
253 查看
package NIO; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.nio.ByteBuffer; import java.nio.CharBuffer; import java.nio.channels.FileChannel; import java.nio.charset.Charset; import java.nio.charset.CharsetDecoder; import java.util.SortedMap; public class CharSet { public static void main(String[] args) throws IOException{ FileInputStream fis=new FileInputStream("c:\\jdk\\a.txt"); FileOutputStream fos=new FileOutputStream("c:\\jdk\\a.txt"); FileChannel fco=fos.getChannel(); String s=new String("142345a陈"); fos.write(s.getBytes("GBK")); fos.write('1');//写字符不乱码 ByteBuffer bf=ByteBuffer.allocate(100); bf.put(s.getBytes("GBK")); bf.clear();//一定不能忘,不然读写都有问题,pointer定位到起点 fco.write(bf);//bf定位到100 System.out.println(bf.capacity()); bf.putChar(10,'x'); bf.clear(); //获取java支持的字符集 /* SortedMap<St 8f0e ring, Charset> map=Charset.availableCharsets(); for(String ss:map.keySet()) { System.out.println(ss+"----->"+map.get(ss)); }*/ Charset cs=Charset.forName("GBK");//(编码解码不一致)文件编码导致的MalformedInputException异常 CharsetDecoder dc=cs.newDecoder(); CharBuffer cb=dc.decode(bf); System.out.println(cb); } }
相关文章推荐
- ByteBuffer的position、limit和capacity
- java之HeapByteBuffer&DirectByteBuffer以及回收DirectByteBuffer
- 浅谈APP切图基本知识点以及注意事项
- java的非常非常基本语法以及注释运用
- String 基本使用方法, 以及要注意的事项
- java.nio.ByteBuffer 以及flip,clear及rewind区别
- MappedByteBuffer以及ByteBufer的底层原理
- 从.NET到Mono-记Kooboo CMS对Mono的兼容历程:一、Mono以及移平台的基本注意要点
- JSP自定义标签的一些基本知识点以及运用
- 2、面向对象以及winform的简单运用(面向对象的四大基本特性)
- CoreLocation 的基本使用 以及定位 指南针的实现 (附加: 系统版本适配的方法,和后台更新用户位置的方法及注意)
- MappedByteBuffer使用注意点
- java之HeapByteBuffer&DirectByteBuffer以及回收DirectByteBuffer
- APP设计和切图基本知识点以及注意事项【APP设计干货】
- java.nio.ByteBuffer 以及flip,clear及rewind区别
- JS模态窗体的运用,以及相关注意事项(有用到window.returnValue)
- 106,Protocol的基本使用以及注意点
- 学习笔记之ByteBuffer使用和实现以及文件内存映射
- ByteBuffer基本概念
- ByteBuffer.flip()注意细节