ByteBuffer转String的方法

转载 2013年08月19日 12:10:42

ByteBuffer俗称缓冲器,是将数据移进移出通道的唯一方式,并且我们只能创建一个独立的基本类型缓冲器,或者使用”as”方法从ByteBuffer中获得。

ByteBuffer中存放的是字节数组,如果要将它们转换成字符串则需要使用 Charset,Charset是字符编码,它提供了把字节流转换成字符串 ( 解码 ) 和将字符串转换成字节流 ( 编码) 的方法。


HBase中读出的数据都是以ByteBuffer形式进行传输的,因此设计到ByteBuffer转换成String输出。

以下是实现该过程的方法:

public static String byteBufferToString(ByteBuffer buffer) {
CharBuffer charBuffer = null;
try {
Charset charset = Charset.forName("UTF-8");
CharsetDecoder decoder = charset.newDecoder();
charBuffer = decoder.decode(buffer);
buffer.flip();
return charBuffer.toString();
} catch (Exception ex) {
ex.printStackTrace();
return null;
}
}

需要说明的是,flip方法会将缓冲区的当前位置”重置”到缓冲区的开始处.这样可以保证传入的对像被其他方法使用时读取的数据完整性.

相关文章推荐

java.nio.ByteBuffer中flip、rewind、clear方法的区别

原文:http://www.blogjava.net/sdjxsgb/archive/2013/06/18/400703.html 对缓冲区的读写操作首先要知道缓冲区的下限、上限和当前位置。...

ByteBuffer.allocateDirect 与 allocate 方法

一、首先是JavaDocument: 直接与非直接缓冲区 字节缓冲区要么是直接的,要么是非直接的。如果为直接字节缓冲区,则 Java 虚拟机会尽最大努力直接在此缓冲区上执行本机 I/O ...
  • TH_NUM
  • TH_NUM
  • 2016年06月21日 11:53
  • 284

NIO ByteBuffer 使用方法

缓冲区分配和包装  在能够读和写之前,必须有一个缓冲区,用静态方法 allocate() 来分配缓冲区:  ByteBuffer buffer = ByteBuffer.allocate(...
  • vrix
  • vrix
  • 2011年10月06日 09:16
  • 851

java.nio.ByteBuffer中flip、rewind、clear方法的区别

对缓冲区的读写操作首先要知道缓冲区的下限、上限和当前位置。下面这些变量的值对Buffer类中的某些操作有着至关重要的作用: limit:所有对Buffer读写操作都会以limit变量的值作为上限...

ByteBuffer常用方法详解

缓冲区(Buffer)就是在内存中预留指定大小的存储空间用来对输入/输出(I/O)的数据作临时存储,这部分预留的内存空间就叫做缓冲区: 使用缓冲区有这么两个好处: 1、减少实际的物理读写次...

ByteBuffer常用方法详解

缓冲区(Buffer)就是在内存中预留指定大小的存储空间用来对输入/输出(I/O)的数据作临时存储,这部分预留的内存空间就叫做缓冲区: 使用缓冲区有这么两个好处: 1、减少实际的物理读写次数 2、缓冲...

java.nio.ByteBuffer的flip、rewind和compact几个方法的区分使用 (转载)

java.nio.ByteBuffer ------------------------------- Capacity 缓冲区最大容量 Limit 当前最大使用量,或者说是有效数据的EOF位置...

使用byteBuffer的 position和limit方法分段读取字节流

1.byteBuffer几个方法含义:         capacity:缓冲区的容量;   limit:缓冲区还有多少数据能够取出或者缓冲区还有多少容量用于存放数据;   pos...

NIO ByteBuffer 使用方法

NIO ByteBuffer 使用方法 http://janla.javaeye.com/blog/322638  缓冲区分配和包装在能够读和写之前,必须有一个缓冲区,用静态方法 allocate()...
  • hishe
  • hishe
  • 2011年03月30日 15:00
  • 330
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ByteBuffer转String的方法
举报原因:
原因补充:

(最多只允许输入30个字)