Se pueden utilizar los Buffer
mensajes de correo electrónico que se proporcionan como parte del java.nio
paquete para realizar la conversión.
Aquí, la byte[]
matriz de origen tiene una longitud de 8, que es el tamaño que se corresponde con un long
valor.
Primero, la byte[]
matriz se envuelve en a ByteBuffer
, y luego ByteBuffer.getLong
se llama al método para obtener el long
valor:
ByteBuffer bb = ByteBuffer.wrap(new byte[] {0, 0, 0, 0, 0, 0, 0, 4});
long l = bb.getLong();
System.out.println(l);
Resultado
4
Me gustaría agradecer a dfa por señalar el ByteBuffer.getLong
método en los comentarios.
Aunque puede que no sea aplicable en esta situación, la belleza de Buffer
s viene con mirar una matriz con múltiples valores.
Por ejemplo, si tuviéramos una matriz de 8 bytes y quisiéramos verla como dos int
valores, podríamos envolver la byte[]
matriz en an ByteBuffer
, que se ve como a IntBuffer
y obtener los valores mediante IntBuffer.get
:
ByteBuffer bb = ByteBuffer.wrap(new byte[] {0, 0, 0, 1, 0, 0, 0, 4});
IntBuffer ib = bb.asIntBuffer();
int i0 = ib.get(0);
int i1 = ib.get(1);
System.out.println(i0);
System.out.println(i1);
Resultado:
1
4