Java 基础 byte[]与各种数据类型互相转换的简单示例
发布时间 - 2026-01-10 22:18:17 点击率:次Java 基础 byte[]与各种数据类型互相转换的简单示例

这里对byte[]类型对long,int,double,float,short,cahr,object,string类型相互转换的实例,
在socket开发过程中,通常需要将一些具体的值(这些值可能是各种Java类型)转化为byte[]类型,为此我总结了如下这个示例,贴出来,以便经常翻看:
public class TestCase {
/**
* short到字节数组的转换.
*/
public static byte[] shortToByte(short number) {
int temp = number;
byte[] b = new byte[2];
for (int i = 0; i < b.length; i++) {
b[i] = new Integer(temp & 0xff).byteValue();// 将最低位保存在最低位
temp = temp >> 8;// 向右移8位
}
return b;
}
/**
* 字节数组到short的转换.
*/
public static short byteToShort(byte[] b) {
short s = 0;
short s0 = (short) (b[0] & 0xff);// 最低位
short s1 = (short) (b[1] & 0xff);
s1 <<= 8;
s = (short) (s0 | s1);
return s;
}
/**
* int到字节数组的转换.
*/
public static byte[] intToByte(int number) {
int temp = number;
byte[] b = new byte[4];
for (int i = 0; i < b.length; i++) {
b[i] = new Integer(temp & 0xff).byteValue();// 将最低位保存在最低位
temp = temp >> 8;// 向右移8位
}
return b;
}
/**
* 字节数组到int的转换.
*/
public static int byteToInt(byte[] b) {
int s = 0;
int s0 = b[0] & 0xff;// 最低位
int s1 = b[1] & 0xff;
int s2 = b[2] & 0xff;
int s3 = b[3] & 0xff;
s3 <<= 24;
s2 <<= 16;
s1 <<= 8;
s = s0 | s1 | s2 | s3;
return s;
}
/**
* long类型转成byte数组
*/
public static byte[] longToByte(long number) {
long temp = number;
byte[] b = new byte[8];
for (int i = 0; i < b.length; i++) {
b[i] = new Long(temp & 0xff).byteValue();// 将最低位保存在最低位 temp = temp
// >> 8;// 向右移8位
}
return b;
}
/**
* 字节数组到long的转换.
*/
public static long byteToLong(byte[] b) {
long s = 0;
long s0 = b[0] & 0xff;// 最低位
long s1 = b[1] & 0xff;
long s2 = b[2] & 0xff;
long s3 = b[3] & 0xff;
long s4 = b[4] & 0xff;// 最低位
long s5 = b[5] & 0xff;
long s6 = b[6] & 0xff;
long s7 = b[7] & 0xff;
// s0不变
s1 <<= 8;
s2 <<= 16;
s3 <<= 24;
s4 <<= 8 * 4;
s5 <<= 8 * 5;
s6 <<= 8 * 6;
s7 <<= 8 * 7;
s = s0 | s1 | s2 | s3 | s4 | s5 | s6 | s7;
return s;
}
/**
* double到字节数组的转换.
*/
public static byte[] doubleToByte(double num) {
byte[] b = new byte[8];
long l = Double.doubleToLongBits(num);
for (int i = 0; i < 8; i++) {
b[i] = new Long(l).byteValue();
l = l >> 8;
}
return b;
}
/**
* 字节数组到double的转换.
*/
public static double getDouble(byte[] b) {
long m;
m = b[0];
m &= 0xff;
m |= ((long) b[1] << 8);
m &= 0xffff;
m |= ((long) b[2] << 16);
m &= 0xffffff;
m |= ((long) b[3] << 24);
m &= 0xffffffffl;
m |= ((long) b[4] << 32);
m &= 0xffffffffffl;
m |= ((long) b[5] << 40);
m &= 0xffffffffffffl;
m |= ((long) b[6] << 48);
m &= 0xffffffffffffffl;
m |= ((long) b[7] << 56);
return Double.longBitsToDouble(m);
}
/**
* float到字节数组的转换.
*/
public static void floatToByte(float x) {
//先用 Float.floatToIntBits(f)转换成int
}
/**
* 字节数组到float的转换.
*/
public static float getFloat(byte[] b) {
// 4 bytes
int accum = 0;
for ( int shiftBy = 0; shiftBy < 4; shiftBy++ ) {
accum |= (b[shiftBy] & 0xff) << shiftBy * 8;
}
return Float.intBitsToFloat(accum);
}
/**
* char到字节数组的转换.
*/
public static byte[] charToByte(char c){
byte[] b = new byte[2];
b[0] = (byte) ((c & 0xFF00) >> 8);
b[1] = (byte) (c & 0xFF);
return b;
}
/**
* 字节数组到char的转换.
*/
public static char byteToChar(byte[] b){
char c = (char) (((b[0] & 0xFF) << 8) | (b[1] & 0xFF));
return c;
}
/**
* string到字节数组的转换.
*/
public static byte[] stringToByte(String str) throws UnsupportedEncodingException{
return str.getBytes("GBK");
}
/**
* 字节数组到String的转换.
*/
public static String bytesToString(byte[] str) {
String keyword = null;
try {
keyword = new String(str,"GBK");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return keyword;
}
/**
* object到字节数组的转换
*/
@Test
public void testObject2ByteArray() throws IOException,
ClassNotFoundException {
// Object obj = "";
Integer[] obj = { 1, 3, 4 };
// // object to bytearray
ByteArrayOutputStream bo = new ByteArrayOutputStream();
ObjectOutputStream oo = new ObjectOutputStream(bo);
oo.writeObject(obj);
byte[] bytes = bo.toByteArray();
bo.close();
oo.close();
System.out.println(Arrays.toString(bytes));
Integer[] intArr = (Integer[]) testByteArray2Object(bytes);
System.out.println(Arrays.asList(intArr));
byte[] b2 = intToByte(123);
System.out.println(Arrays.toString(b2));
int a = byteToInt(b2);
System.out.println(a);
}
/**
* 字节数组到object的转换.
*/
private Object testByteArray2Object(byte[] bytes) throws IOException,
ClassNotFoundException {
// byte[] bytes = null;
Object obj;
// bytearray to object
ByteArrayInputStream bi = new ByteArrayInputStream(bytes);
ObjectInputStream oi = new ObjectInputStream(bi);
obj = oi.readObject();
bi.close();
oi.close();
System.out.println(obj);
return obj;
}
}
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
# Java
# 基础
# byte[]数据转换
# Java中
# byte[]数据转换各种类型示例
# byte[]
# 初识Java基础之数据类型与运算符
# Java基础之详解基本数据类型的使用
# java基础详解之数据类型知识点总结
# Java基础教程之基本类型数据类型、包装类及自动拆装箱
# Java基础教程之八大基本数据类型
# Java基础-Java基本数据类型
# 希望能
# 我总
# 谢谢大家
# 转化为
# 转换成
# 先用
# 贴出
# 转成
# 结了
# 过程中
# Long
# longToByte
# byteToShort
# intToByte
# return
# byteToInt
# byteToLong
# doubleToByte
# getDouble
# doubleToLongBits
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
悟空识字怎么关闭自动续费_悟空识字取消会员自动扣费步骤
如何在IIS服务器上快速部署高效网站?
Win11关机界面怎么改_Win11自定义关机画面设置【工具】
Laravel如何使用Blade组件和插槽?(Component代码示例)
夸克浏览器网页跳转延迟怎么办 夸克浏览器跳转优化
php8.4header发送头信息失败怎么办_php8.4header函数问题解决【解答】
jQuery中的100个技巧汇总
Laravel任务队列怎么用_Laravel Queues异步处理任务提升应用性能
Laravel如何实现本地化和多语言支持?(i18n教程)
Laravel distinct去重查询_Laravel Eloquent去重方法
Laravel怎么使用Blade模板引擎_Laravel模板继承与Component组件复用【手册】
Python文本处理实践_日志清洗解析【指导】
实例解析Array和String方法
最好的网站制作公司,网购哪个网站口碑最好,推荐几个?谢谢?
百度浏览器ai对话怎么关 百度浏览器ai聊天窗口隐藏
网易LOFTER官网链接 老福特网页版登录地址
西安专业网站制作公司有哪些,陕西省建行官方网站?
Laravel怎么实现搜索功能_Laravel使用Eloquent实现模糊查询与多条件搜索【实例】
Laravel怎么处理异常_Laravel自定义异常处理与错误页面教程
深入理解Android中的xmlns:tools属性
胶州企业网站制作公司,青岛石头网络科技有限公司怎么样?
PythonWeb开发入门教程_Flask快速构建Web应用
Python文件异常处理策略_健壮性说明【指导】
在线教育网站制作平台,山西立德教育官网?
惠州网站建设制作推广,惠州市华视达文化传媒有限公司怎么样?
公司门户网站制作公司有哪些,怎样使用wordpress制作一个企业网站?
js代码实现下拉菜单【推荐】
Python图片处理进阶教程_Pillow滤镜与图像增强
Laravel如何使用Collections进行数据处理?(实用方法示例)
深圳网站制作培训,深圳哪些招聘网站比较好?
Java解压缩zip - 解压缩多个文件或文件夹实例
进行网站优化必须要坚持的四大原则
成都网站制作公司哪家好,四川省职工服务网是做什么用?
html5源代码发行怎么设置权限_访问权限控制方法与实践【指南】
如何在香港免费服务器上快速搭建网站?
Laravel如何使用Eloquent进行子查询
网站制作报价单模板图片,小松挖机官方网站报价?
javascript中的try catch异常捕获机制用法分析
JavaScript中的标签模板是什么_它如何扩展字符串功能
如何在阿里云香港服务器快速搭建网站?
Laravel的.env文件有什么用_Laravel环境变量配置与管理详解
C#如何调用原生C++ COM对象详解
javascript基于原型链的继承及call和apply函数用法分析
如何在万网自助建站中设置域名及备案?
Laravel Blade组件怎么用_Laravel可复用视图组件的创建与使用
关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)
如何用西部建站助手快速创建专业网站?
Laravel如何创建自定义Artisan命令?(代码示例)
Laravel如何实现用户角色和权限系统_Laravel角色权限管理机制
邀请函制作网站有哪些,有没有做年会邀请函的网站啊?在线制作,模板很多的那种?

