package com.test;
import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.util.Arrays;
/**
*
* @author chuer
* @version 2014-6-9 上午9:54:52
*
* 使用java编写网络层,都需要把数据转换成字节数组的形式,
* 我们可以使用DataOutputStrem和ByteArrayOutputStream轻松的把
* 基本类型和字符串转化成字节,如下代码所示。
*
* 下面实例还演示另一种方法把数据转化成字节数组:intToBytes。以及把字节数据转化成数据:bytesToInt。
* 只是简单介绍了一下int类型,其他基本类型和字符串是一样的道理.字符串其实就是一个字符(char)的一个数组。
*/
public class Test {
public static void main(String[] args) throws IOException {
final int num = 10000;
String a = "";
a.getBytes();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
DataOutputStream dos = new DataOutputStream(baos);
dos.writeInt(num);
byte[] byteArray = baos.toByteArray();
System.out.println(Arrays.toString(byteArray));
//把num编程字节数组
final byte [] array = new byte[4];
intToBytes(array,num);
System.out.println(Arrays.toString(array));
//把字节数组再还原成整数
final int now = bytesToInt(array);
System.out.println(now);
}
/**
* 把整数转化成字节数组
* @param array
* @param v
*/
public static void intToBytes(byte [] array,int v) {
for(int i = 0; i < 4; ++i) {
array[i] = (byte)(v >>> (24 - i * 8));
}
}
/**
* 把字节数组转化成整数
* @param
* @return
*/
public static int bytesToInt(byte[] b) {
int num = 0;
for(int i = 0; i < 4; ++i) {
num <<= 8;
num |= (b[i] & 0xff);
}
return num;
}
}
把我们的数据转换成网络上传递的字节
最新推荐文章于 2021-04-12 17:59:14 发布