java笔记--关于int和byte[]的转换

java笔记--关于int和byte[]的转换

关于int和byte[]数组的转换

 --如果朋友您想转载本文章请注明转载地址"http://www.cnblogs.com/XHJT/p/3891747.html "谢谢--

众所周知java有8种基本类型,分别是低级变量(byte,char,boolean,shot)和高级变量(int,long,double,float),
低级变量会自动转化成高级变量,而高级变量则要用强制转换才能成为低级变量,
可是在文件传输和网络传输当中,由于计算机都是以二进制来存储数据的,所以很多时候我们需要将要用到的数据转换成字节流来完成传输
那么int和byte[]数组之间又是如何转换的呢?
很多人可能会马上想到String类型中的getBytes()方法来实现byte[]的转换,
但可惜的是在int中java没有并封装有像这样的一个方法。
仔细的查看API文档,我们会发现,其实java还是提供了不错的解决方案的,
在java.io包下有这么四个类,分别是输出流ByteArrayOutputStream,DataOutputStream和输入流ByteArrayInputStream和DataInputStream
通过这四个IO流即可实现int和byte[]数组的转换。

以下是代码实例:
package com.xhj.data;

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;

/**
* int 和 byte[]的相互转换
*
* @author XIEHEJUN
*
*/
public class IntToButeArray {

/**
* 整数转换成字节数组 关键技术:ByteArrayOutputStream和DataOutputStream
*
* @param n
* 需要转换整数
* @return
*/
public static byte[] intToButeArray(int n) {
byte[] byteArray = null;
try {
ByteArrayOutputStream byteOut = new ByteArrayOutputStream();
DataOutputStream dataOut = new DataOutputStream(byteOut);
dataOut.writeInt(n);
byteArray = byteOut.toByteArray();
for (byte b : byteArray) {
System.out.println(" " + b);
}
} catch (IOException e) {
e.printStackTrace();
}
return byteArray;
}

/**
* 字节数组转换成整数 关键技术:ByteArrayInputStream和DataInputStream
*
* @param byteArray
* 需要转换的字节数组
* @return
*/
public static int byteArrayToInt(byte[] byteArray) {
int n = 0;
try {
ByteArrayInputStream byteInput = new ByteArrayInputStream(byteArray);
DataInputStream dataInput = new DataInputStream(byteInput);
n = dataInput.readInt();
System.out.println("整数为: " + n);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return n;
}

public static void main(String[] args) {
byte[] byteArray = intToButeArray(105);
byteArrayToInt(byteArray);
}
}

 

知识重在总结和梳理,只有不断地去学习并运用,才能化为自己的东西。由于本人进阶猿类时间尚短,故此博客即是我学习,工作的笔记,也是和大家交流,相互提升技术的平台~希望大家不吝赐教~~ --但管努力,莫问前程,事在人为,功不唐捐。--和佑博客园
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值