java中byte[]、buffer、string转换

将原数组数据拷贝到目的数组

System.arraycopy(src, Srcposition, dst, DstPosition,dstLength);

将字节数组转换成字节缓冲区

ByteBuffer buffer = ByteBuffer.wrap(Bytes[]);

目前buffer存在的位置与buffer的容量

buffer.position() < buffer.capacity()

将buffer读取到目的

buffer.get(dstBytes[], 0, length);


字节转string

public static String toString(byte[] buf, int offset, int length,
String charsetName) {
String str = null;
if (charsetName == null || charsetName.equals("")) {
charsetName = System.getProperty("file.encoding");
}
try {
str = new String(buf, offset, length, charsetName);
} catch (UnsupportedEncodingException e) {
str = new String(buf, offset, length);
}
return str;
}


字节转换成数值:

public static String toIp(byte[] buf, int offset, int length) {
StringBuilder stbuf = new StringBuilder();
;
for (int i = 0; i < length; i++) {
int value = buf[offset++] & 0xff;
stbuf.append(value).append(".");
}
stbuf.deleteCharAt(stbuf.length() - 1);
return stbuf.toString();
}



  1. /** 
  2.  * @Package: 
  3.  * @ClassName:TypeConversion 
  4.  * @Description:字节流、字符串、16进制字符串转换 
  5.  * @author:xk 
  6.  * @date:Jan 8, 2013 5:00:08 PM 
  7.  */  
  8. public class TypeConversion {  
  9.     /** 
  10.      * @Title:bytes2HexString 
  11.      * @Description:字节数组转16进制字符串 
  12.      * @param b 
  13.      *            字节数组 
  14.      * @return 16进制字符串 
  15.      * @throws 
  16.      */  
  17.     public static String bytes2HexString(byte[] b) {  
  18.         StringBuffer result = new StringBuffer();  
  19.         String hex;  
  20.         for (int i = 0; i < b.length; i++) {  
  21.             hex = Integer.toHexString(b[i] & 0xFF);  
  22.             if (hex.length() == 1) {  
  23.                 hex = '0' + hex;  
  24.             }  
  25.             result.append(hex.toUpperCase());  
  26.         }  
  27.         return result.toString();  
  28.     }  
  29.   
  30.     /** 
  31.      * @Title:hexString2Bytes 
  32.      * @Description:16进制字符串转字节数组 
  33.      * @param src 
  34.      *            16进制字符串 
  35.      * @return 字节数组 
  36.      * @throws 
  37.      */  
  38.     public static byte[] hexString2Bytes(String src) {  
  39.         int l = src.length() / 2;  
  40.         byte[] ret = new byte[l];  
  41.         for (int i = 0; i < l; i++) {  
  42.             ret[i] = (byte) Integer  
  43.                     .valueOf(src.substring(i * 2, i * 2 + 2), 16).byteValue();  
  44.         }  
  45.         return ret;  
  46.     }  
  47.   
  48.     /** 
  49.      * @Title:string2HexString 
  50.      * @Description:字符串转16进制字符串 
  51.      * @param strPart 
  52.      *            字符串 
  53.      * @return 16进制字符串 
  54.      * @throws 
  55.      */  
  56.     public static String string2HexString(String strPart) {  
  57.         StringBuffer hexString = new StringBuffer();  
  58.         for (int i = 0; i < strPart.length(); i++) {  
  59.             int ch = (int) strPart.charAt(i);  
  60.             String strHex = Integer.toHexString(ch);  
  61.             hexString.append(strHex);  
  62.         }  
  63.         return hexString.toString();  
  64.     }  
  65.   
  66.     /** 
  67.      * @Title:hexString2String 
  68.      * @Description:16进制字符串转字符串 
  69.      * @param src 
  70.      *            16进制字符串 
  71.      * @return 字节数组 
  72.      * @throws 
  73.      */  
  74.     public static String hexString2String(String src) {  
  75.         String temp = "";  
  76.         for (int i = 0; i < src.length() / 2; i++) {  
  77.             temp = temp  
  78.                     + (char) Integer.valueOf(src.substring(i * 2, i * 2 + 2),  
  79.                             16).byteValue();  
  80.         }  
  81.         return temp;  
  82.     }  
  83.       
  84.     /** 
  85.      * @Title:char2Byte 
  86.      * @Description:字符转成字节数据char-->integer-->byte 
  87.      * @param src 
  88.      * @return 
  89.      * @throws 
  90.      */  
  91.     public static Byte char2Byte(Character src) {  
  92.         return Integer.valueOf((int)src).byteValue();  
  93.     }  
  94.       
  95.         /** 
  96.      * @Title:intToHexString 
  97.      * @Description:10进制数字转成16进制 
  98.      * @param a 转化数据 
  99.      * @param len 占用字节数 
  100.      * @return 
  101.      * @throws 
  102.      */  
  103.     private static String intToHexString(int a,int len){  
  104.         len<<=1;  
  105.         String hexString = Integer.toHexString(a);  
  106.         int b = len -hexString.length();  
  107.         if(b>0){  
  108.             for(int i=0;i<b;i++)  {  
  109.                 hexString = "0" + hexString;  
  110.             }  
  111.         }  
  112.         return hexString;  
  113.     }  
  114.       
  115.       
  116.     public static void main(String args[]) {  
  117.         System.out.println(hexString2String("3133383131313536373838"));  
  118.     }  
  119. }  

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值