天行健,君子以自强不息;地势坤,君子以厚德载物。
每个人都有惰性,但不断学习是好好生活的根本,共勉!
文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。
long和bytes[]互转
- 1. long类型的值与bytes数组互转工具代码
- 2. 主类运行测试
- 3. 控制台打印结果
1. long类型的值与bytes数组互转工具代码
package com.data.utils;
import java.nio.ByteBuffer;
/**
* @ClassDescription: long和bytes[]互转工具类
* java.nio中的Buffer
* NIO支持面向缓冲区的、基于通道的IO操作。 NIO将以更加高效的方式进行文件的读写操作。
* 缓冲区Buffer是一个容器对象,底层的存储结构为一个数组。在NIO中,所有的数据都是缓冲区来处理的。
* 而使用缓冲区的好处显而易见:
* 第一可以减少实际物理的读写次数,
* 第二缓冲区创建初始就被分配了内存,这个内存空间一直在被重用,可以减少动态分配和回收内存的次数。
* @Author:李白
* @Date:2023/7/3 17:41
*/
public class LongByteTransferUtils {
//分配缓冲区,单位为字节,long类型占8字节 //allocate中值为8
private static ByteBuffer byteBuffer = ByteBuffer.allocate(Long.SIZE/Byte.SIZE);
//long类型转byte[]
public static byte[] long2Bytes(long l){
byteBuffer.putLong(0,l);
return byteBuffer.array();
}
//byte[]转long类型
public static long bytes2Long(byte[] bytes){
byteBuffer.put(bytes, 0, bytes.length);
//将buffer从写模式换到读模式,flip将position设回0,从头读
byteBuffer.flip();
return byteBuffer.getLong();
}
}
2. 主类运行测试
package com.data.utils;
import java.io.IOException;
/**
* @ClassDescription:
* @Author:李白
* @Date:2023/7/3 16:00
*/
public class TestTime {
public static void main(String[] args) throws IOException {
long orl = 12345;
//将long类型的值转为bytes数组
byte[] bytes = LongByteTransferUtils.long2Bytes(orl);
System.out.println(bytes);
//将bytes数组转为long类型的值
long l = LongByteTransferUtils.bytes2Long(bytes);
System.out.println(l);
}
}