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方法会将缓冲区的当前位置”重置”到缓冲区的开始处.这样可以保证传入的对像被其他方法使用时读取的数据完整性.

ByteBuffer常用方法详解

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

关于java字符的编码问题学习

关于java字符串相关的字符集和编码方式不再解释,可以参见该篇文章[Java与字符编码问题详谈](http://hxraid.iteye.com/blog/559607),今天要说的是在java字符串...
  • jiubugeinifo
  • jiubugeinifo
  • 2015年10月22日 14:44
  • 716

string 转 java对象、转map的方式

1、使用fastJson 将String转 map: String out;         Object succesResponse = JSON.parse(out);    //先...
  • start_2013
  • start_2013
  • 2016年08月14日 15:05
  • 16624

ByteBuffer之二进制数据的存取

function LocalData:readFromBuffer( buffer ) local v = buffer:readInt() if v > self.version t...
  • themagickeyjianan
  • themagickeyjianan
  • 2016年08月30日 14:45
  • 936

详说vC++中 string之万能转换方法

C ++提供的由C++字符串得到对应的C_string的方法是使用data()、c_str()和copy(),其中, data()以字符数组的形式返回字符串内容,但并不添加’\0’。 c_str(...
  • ybhjx
  • ybhjx
  • 2017年04月28日 07:48
  • 828

Java中int转String 和 String转int 各方法效率对比

一、int转String有三种方式 (1)num + "" (2)String.valueOf(num) (3)Integer.toString(num) //int => String int nu...
  • u012050154
  • u012050154
  • 2016年05月05日 10:45
  • 1642

面试题:不用Java内置函数把String类型转int类型

面试中遇到一道算法题:不采用java的内置函数,把String类型转换为int类型。
  • oTengYue
  • oTengYue
  • 2016年04月06日 12:53
  • 2439

JAVA对象转为Java String的几种常用方法

在java项目的实际开发和应用中,常常需要用到将对象转为String这一基本功能。本文将对常用的转换方法进行一个总结。常用的方法有Object#toString(),(String)要转换的对象,St...
  • m13286282
  • m13286282
  • 2015年07月14日 17:10
  • 942

C#、Unity网络通信中基于字节码的自定义协议解码,C#版ByteBuffer

http://www.oschina.net/code/snippet_42170_37516 C#、Unity基于字节的网络通信中字节码解析类,类似java中的ByteBuffer,不过这个实...
  • OnafioO
  • OnafioO
  • 2015年05月06日 16:20
  • 1053

java基础-各种类型及转换(int,string,char,short,date)

java数据类型和c/c++相似,但java是面向对象
  • chzayi
  • chzayi
  • 2014年11月07日 13:20
  • 2320
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ByteBuffer转String的方法
举报原因:
原因补充:

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