700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 字节增强java_java字节增加 - longjunping的个人空间 - OSCHINA - 中文开源技术交流社区...

字节增强java_java字节增加 - longjunping的个人空间 - OSCHINA - 中文开源技术交流社区...

时间:2019-07-27 00:20:17

相关推荐

字节增强java_java字节增加 - longjunping的个人空间 - OSCHINA - 中文开源技术交流社区...

// 添加数据

publicbyte[] insertdata(charid, String swapdata,byte[] resultdata)throwsUnsupportedEncodingException {

intoffset = 0;

intswaplen= 0, count = 0;

// byte[] buffer = new byte[swapdata.length()*2];

byte[] buffer =null;

if(swapdata !=null) {

buffer = swapdata.getBytes("UTF-16LE");

count = buffer.length;

}

// for(inti=0; i

// charch= swapdata.charAt(i);

// if(ch> 127){

// buffer[i*2] = (byte)(ch&0xff);

// buffer[i*2+1] = (byte)((ch>>8)&0xff);

// count += 2;

// }else{

// buffer[i*2] = (byte)(ch&0xff);

// buffer[i*2+1] = 0;

// count += 2;

// }

// }

//

if(resultdata ==null) {

resultdata =newbyte[count + 6];

}else{

byte[] temp = resultdata;

resultdata =newbyte[temp.length+ count + 6];

for(inti = 0; i < temp.length; i++) {

resultdata[offset++] = temp[i];

}

}

intlenth = count;

// 添加 id

resultdata[offset++] = (byte) id;

resultdata[offset++] = 0;

// 添加长度

resultdata[offset++] = (byte) (lenth & 0xff);

resultdata[offset++] = (byte) ((lenth >> 8) & 0xff);

resultdata[offset++] = (byte) ((lenth >> 16) & 0xff);

resultdata[offset++] = (byte) ((lenth >> 24) & 0xff);

for(inti = 0; i < count; i++) {

resultdata[offset++] = buffer[i];

}

returnresultdata;

}

插入字节

public static String stringEncode(String swapdata) throws UnsupportedEncodingException {

int len = 0;

int count = 0;

byte[] buffer = null;

if (swapdata != null) {

buffer = swapdata.getBytes("UTF-16LE");

len = buffer.length;

}

byte[] resultdata = buffer;

int offset = 0;

count = len;

for(int i = 0; i < buffer.length; i++){

if(buffer[i]==0x38){

//复制之前的数据然后在数据末尾加入0

byte[] temp = resultdata;

resultdata = new byte[ count + 1];

count++;

for(int k=0;k

resultdata[k]=temp[k];

}

resultdata[offset++]=buffer[i];

resultdata[offset++]=0x00;

}else{

resultdata[offset++] = buffer[i];

}

}

return new String(resultdata, "UTF-16LE");

}

利用空间换算 插入字节

public static byte[] encodephone(byte[] phone)

{

int len=phone.length;

byte[] temp = new byte[len*2];

int pos=0;

for(int i=0;i

{

if(phone[i] == 0x38)

{

temp[pos++] = 0x38;

temp[pos++] = 0x00;

}

else

{

temp[pos++] = phone[i];

}

}

byte[] ret = new byte[pos];

System.arraycopy(temp,0,ret, 0, pos);

return ret;

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。