java mina iobuffer转换成String

2022-09-08 14:15:15

在做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
 */
  • 作者:羽0319
  • 原文链接:https://blog.csdn.net/Ying_Baiyu/article/details/84169558
    更新时间:2022-09-08 14:15:15