Endian differences and data storage : ByteBuffer « File « Java Tutorial






import java.nio.ByteBuffer;
import java.nio.ByteOrder;

public class MainClass {
  public static void main(String[] args) {
    ByteBuffer bb = ByteBuffer.wrap(new byte[12]);
    bb.asCharBuffer().put("abcdef");
    System.out.println(toString(bb.array()));
    bb.rewind();
    bb.order(ByteOrder.BIG_ENDIAN);
    bb.asCharBuffer().put("abcdef");
    System.out.println(toString(bb.array()));
    bb.rewind();
    bb.order(ByteOrder.LITTLE_ENDIAN);
    bb.asCharBuffer().put("abcdef");
    System.out.println(toString(bb.array()));
  }

  public static String toString(byte[] a) {
    StringBuffer result = new StringBuffer("[");
    for (int i = 0; i < a.length; i++) {
      result.append(a[i]);
      if (i < a.length - 1)
        result.append(", ");
    }
    result.append("]");
    return result.toString();
  }
}
/*
 * [0, 97, 0, 98, 0, 99, 0, 100, 0, 101, 0, 102] [0, 97, 0, 98, 0, 99, 0, 100,
 * 0, 101, 0, 102] [97, 0, 98, 0, 99, 0, 100, 0, 101, 0, 102, 0]
 */








11.42.ByteBuffer
11.42.1.A ByteBuffer is a fixed-capacity buffer that holds byte values.
11.42.2.Create a ByteBuffer using a byte array
11.42.3.Create a non-direct ByteBuffer with a 10 byte capacity
11.42.4.Create a direct (memory-mapped) ByteBuffer with a 10 byte capacity.
11.42.5.Allocation automatically zeroes the ByteBuffer
11.42.6.Store and read a char array
11.42.7.Store and read a short
11.42.8.Rewind a ByteBuffer
11.42.9.Store and read an int
11.42.10.Store and read a long
11.42.11.Store and read a float
11.42.12.Store and read a double
11.42.13.ByteBuffer.hasRemaining()
11.42.14.Use while loop to read a ByteBuffer
11.42.15.Retrieve all bytes in the buffer
11.42.16.Retrieve bytes between the position and limit
11.42.17.Converting text to and from ByteBuffers with UTF-16BE
11.42.18.Converting text to and from ByteBuffers
11.42.19.Get the ByteBuffer's capacity
11.42.20.Use the absolute get().
11.42.21.Set the position
11.42.22.Use the relative get()
11.42.23.Get remaining byte count in a ByteBuffer
11.42.24.Set the limit for ByteBuffer
11.42.25.This convenience method sets the position to 0
11.42.26.Converting Between a ByteBuffer an a Byte Array
11.42.27.Putting Bytes into a ByteBuffer
11.42.28.Endian differences and data storage
11.42.29.Use FileChannel and ByteBuffer to Copy File
11.42.30.Read from a channel with a ByteBuffer
11.42.31.Test views of long elements in a ByteBuffer