Si potrebbero usare i messaggi di posta Buffer
elettronica forniti come parte dijava.nio
pacchetto per eseguire la conversione.
Qui, l' byte[]
array di origine ha una lunghezza 8, che è la dimensione che corrisponde a un long
valore.
Innanzitutto, l' byte[]
array è racchiuso in un ByteBuffer
, quindi il ByteBuffer.getLong
metodo viene chiamato per ottenere il long
valore:
ByteBuffer bb = ByteBuffer.wrap(new byte[] {0, 0, 0, 0, 0, 0, 0, 4});
long l = bb.getLong();
System.out.println(l);
Risultato
4
Vorrei ringraziare dfa per aver sottolineato il ByteBuffer.getLong
metodo nei commenti.
Sebbene possa non essere applicabile in questa situazione, il bello degli Buffer
s viene dall'osservare un array con più valori.
Ad esempio, se avessimo un array di 8 byte e volessimo visualizzarlo come due int
valori, potremmo racchiudere l' byte[]
array in un ByteBuffer
, che viene visualizzato come a IntBuffer
e ottenere i valori da 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);
Risultato:
1
4