Si potrebbero usare i messaggi di posta Bufferelettronica 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 longvalore.
Innanzitutto, l' byte[]array è racchiuso in un ByteBuffer, quindi il ByteBuffer.getLongmetodo viene chiamato per ottenere il longvalore:
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.getLongmetodo nei commenti.
Sebbene possa non essere applicabile in questa situazione, il bello degli Buffers viene dall'osservare un array con più valori.
Ad esempio, se avessimo un array di 8 byte e volessimo visualizzarlo come due intvalori, potremmo racchiudere l' byte[]array in un ByteBuffer, che viene visualizzato come a IntBuffere 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