Java >> Java tutorial >  >> Tag >> byte

Konverter mellem ByteBuffer og byte array

Med dette eksempel skal vi demonstrere, hvordan man konverterer mellem ByteBuffere og byte-arrays. Kort sagt, for at foretage en konvertering mellem en ByteBuffer og et byte-array skal du:

  • Opret et byte-array, og pak det ind i en ByteBuffer. Bufferens kapacitet og grænse vil være arrayets længde, og dens position vil være nul.
  • Hent bytes mellem den aktuelle position og grænsen for bufferen. Det nye byte-arrays længde indstilles til antallet af resterende elementer i bufferen ved hjælp af remaining() API-metoden, og derefter overføres bytes fra bufferen til byte-arrayet ved hjælp af get(byte[] dst, int offset, int length) API-metode.
  • Hent alle bytes i bufferen. Først sættes bufferpositionen til 0 og buffergrænsen indstilles til dens kapacitet med clear() API-metoden, så sættes længden af ​​den nye byte-array til bufferens kapacitet og derefter igen get(byte[] dst, int offset, int length) API-metoden overfører bytes fra bufferen til arrayet.

Lad os tage et kig på kodestykket, der følger.

// Create a byte array
byte[] bytes = new byte[10];

// Wrap a byte array into a buffer
ByteBuffer buf = ByteBuffer.wrap(bytes);

// Retrieve bytes between the position and limit
// (see Putting Bytes into a ByteBuffer)
bytes = new byte[buf.remaining()];

// transfer bytes from this buffer into the given destination array
buf.get(bytes, 0, bytes.length);

// Retrieve all bytes in the buffer
buf.clear();
bytes = new byte[buf.capacity()];

// transfer bytes from this buffer into the given destination array
buf.get(bytes, 0, bytes.length);


Dette var et eksempel på, hvordan man konverterer mellem en ByteBuffer og en byte-array i Java.

bytebuffer kerne java nio
Java tag