mina iobuffer byte[]、String之间转换

package com.yhs.a;

import java.nio.ByteOrder;
import java.nio.charset.CharacterCodingException;

import org.apache.mina.core.buffer.IoBuffer;

import sun.nio.cs.ext.EUC_TW.Encoder;

public class IoBufferTOString {    
   
    public static String ioBufferToString1(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((char) b[i]); //可以根据需要自己改变类型    
            System.out.println(b[i] +"---------" +i);    
        }    
        return stringBuffer.toString();    
    }    
        
   
    public static void main(String[] args) throws CharacterCodingException{    
       IoBuffer iobuffer = IoBuffer.allocate(8);    
        iobuffer.order(ByteOrder.LITTLE_ENDIAN);  
//        iobuffer.setAutoExpand(true);   
        iobuffer.putChar('z');    
             
        String str = ioBufferToString1(iobuffer);    
        System.out.println(str);    
            
    }    
    
    public static String byteToString(byte [] b)   
    {   
           StringBuffer stringBuffer = new StringBuffer();   
           for (int i = 0; i < b.length; i++)   
           {   
               stringBuffer.append((char) b [i]);   
           }   
           return stringBuffer.toString();   
    }   
      
      
    public static IoBuffer stringToIoBuffer(String str)   
    {   
      
           byte bt[] = str.getBytes();   
      
           IoBuffer ioBuffer = IoBuffer.allocate(bt.length);   
           ioBuffer.put(bt, 0, bt.length);   
           ioBuffer.flip();   
           return ioBuffer;   
    }   
      
    public static IoBuffer byteToIoBuffer(byte [] bt,int length)   
    {   
      
           IoBuffer ioBuffer = IoBuffer.allocate(length);   
           ioBuffer.put(bt, 0, length);   
           ioBuffer.flip();   
           return ioBuffer;   
    }   
      
    public static byte [] ioBufferToByte(Object message)   
    {   
          if (!(message instanceof IoBuffer))   
          {   
              return null;   
          }   
          IoBuffer ioBuffer = (IoBuffer)message;   
          byte[] b = new byte[ioBuffer.limit()];   
          ioBuffer.get(b);   
          return b;   
    }   
      
    public static String ioBufferToString(Object message)   
    {   
          if (!(message instanceof IoBuffer))   
          {   
            return "";   
          }   
          IoBuffer ioBuffer = (IoBuffer) message;   
          byte[] b = new byte [ioBuffer.limit()];   
          ioBuffer.get(b);   
          StringBuffer stringBuffer = new StringBuffer();   
      
          for (int i = 0; i < b.length; i++)   
          {   
      
           stringBuffer.append((char) b [i]);   
          }   
           return stringBuffer.toString();   
    }  
        
}    

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值