4.将整型转换成指定长度的数组字节流
public static byte[] int2bytes(int integer, int len) {
// if (integer < 0) { throw new IllegalArgumentException(”Can not cast negative to bytes : ” + integer); }
ByteArrayOutputStream bo = new ByteArrayOutputStream();
for (int i = 0; i < len; i++) {
bo.write(integer);
integer = integer >> 8;
}
byte[] res=reversEndian(bo.toByteArray(),len);
return res;
}
private static byte[] reversEndian(byte str[],int len) {
byte b;
byte res[]=new byte[len];
for(int i=0;i<len;i++)
{
b=str[i];
res[len-i-1]=b;
}
return res;
}
5.将整型转换成TLV方式的字节数组流
public static byte[] int2TLVbytes(int tag,int value,int len) throws IOException{
byte[] tag1=int2bytes(tag,4);
byte[] length1=int2bytes(len,4);
byte[] value1=int2bytes(value,len);
byte[] buff=pack(tag1,length1,value1);
return buff;
}
6.将UTF-8的string转换成指定长度的字节数组流,不足部分补fillByte(如0×00)
public static byte[] string2bytes(String source, int length,byte fillByte) {
byte[] dst = new byte[length];
if (source == null) {
for (int i = 0; i < length; i++) {
dst[i] = fillByte;
}
return dst;
}