把我们的数据转换成网络上传递的字节
2014-06-09 10:50
411 查看
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; } }
相关文章推荐
- 网络编程 发送数据 时宽字节和字符转换
- Java字节序(不同语言中的网络数据传输时字节序列转换)
- Java字节序(不同语言中的网络数据传输时字节序列转换)
- 网络通信时整型数据与字节之间的转换
- 网络字节顺序和主机字节顺序的转换(htons ntohs htonl ntohl)
- 网络字节转换inet_aton & inet_ntoa & inet_addr和inet_pton
- 使用Oracle可传输表空间的特性复制数据(4)转换字节顺序
- 本机字节顺序与网络字节顺序的转换
- Java基础小知识——基本数据类型和字符串以及字节数组的转换
- Java中的移位操作以及基本数据类型转换成字节数组【收集】
- 网络字节顺序转换
- 字节顺序以及在网络传输前要做的转换
- 数据类型转换,宽字节和单字节互转
- Java基础小知识——基本数据类型和字符串以及字节数组的转换
- 关于主机字节和网络字节的转换方法和理解
- 网络字节转换inet_aton & inet_ntoa & inet_addr和inet_pton & inet_ntop
- 网络字节转换inet_aton & inet_ntoa & inet_addr和inet_pton & inet_ntop
- long long 类型的网络字节顺序转换
- double 转换成网络字节
- 网络字节顺序转换