ByteBuffer的处理

来源:互联网 发布:上海正规驾校排名知乎 编辑:程序博客网 时间:2024/06/13 01:41

内存映射的处理数据的速度很快,可以像处理数组那样处理,也可以随机访问,因此好处很多...但是如果所处理的数据是大型的文本呢?文本本身的含义依赖于其字符编码,所以需要采取一些措施。

1.内存映射

1.1映射缓存区,使用通道打开文件,并且得到映射缓存区

FileChannel channel = FileChannel.open(Path,OpenOption...);

OpenOption 使用StandardOpenOption中的类型

 channel.map(FileChannel.MapMode , long pos , long size)

size 从pos开始算

1.2使用byte[],ByteBuffer.warp()对byte[]进行打包...


2.字符集的转换

2.1解码:

cset = CharSet.forName(String name)  进行加载字符集

CharBuffer cbuf = cset.decode(ByteBuffer);解码

String str = cbuf.toString();转换成字符串


2.2编码

指定字符集,进行编码,转换成byte[],ByteBuffer.array();

cset = CharSet.forName(String name)  进行加载字符集

ByteBuffer  bbuf= cset.encode(String str);

bbuf.array()


0 0