java中的iobuffer
iobuffer 转换成String
在做crc校验的过程中遇到了iobuffer转换成string的问题,自己找了点资料写了个简单的方法。
Java代码
package minaUDP;
import java.nio.ByteOrder;
import java.nio.charset.CharacterCodingException;
import org.apache.mina.core.buffer.IoBuffer;
/**
* iobuffer 转换成String
*
* @Description:TODO
* @Date:2012-3-15
* @author
*/
public class IoBufferTOString {
public static String ioBufferToString(IoBuffer iobuffer){
System.out.println("message = " + iobuffer + iobuffer.limit());
iobuffer.flip(); //调换buffer当前位置,并将当前位置设置成0
byte[] b = new byte[iobuffer.limit()];
iobuffer.get(b);
//此处用stringbuffer是因为 String类是字符串常量,是不可更改的常量。而StringBuffer是字符串变量,它的对象是可以扩充和修改的。
StringBuffer stringBuffer = new StringBuffer();
for(int i = 0; i < b.length; i++){
System.out.println("====" + b[i]);
stringBuffer.append((Byte) b[i]); //可以根据需要自己改变类型
System.out.println(b[i] +"---------" +i);
}
return stringBuffer.toString();
}
/**
* @param args
* @param:@param args
* @return:void
* @author
* @throws CharacterCodingException
* @Date:2012-3-15
*/
public static void main(String[] args) throws CharacterCodingException{
IoBuffer iobuffer = IoBuffer.allocate(8);
iobuffer.order(ByteOrder.LITTLE_ENDIAN);
iobuffer.putChar('z');
iobuffer.putInt(123);
String str = ioBufferToString(iobuffer);
System.out.println(str);
}
}
作者
create on 2012-3-15