java中的iobuffer
在做crc校验的过程中遇到了iobuffer转换成string的问题,自己找了点资料写了个简单的方法。
- 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);
- }
- }
- /**
- * @author create on 2012-3-15
- */
欢迎关注公众号:Java后端技术全栈