Java ByteBuffer convert to String and show endian difference

Description

Java ByteBuffer convert to String and show endian difference


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

public class Main {

   public static void main(String[] args) {
      ByteBuffer bb = ByteBuffer.wrap(new byte[12]);
      bb.asCharBuffer().put("ABC");
      System.out.println(toString(bb.array()));


      bb.rewind();//from   w w w  . java2  s.c  om
      bb.order(ByteOrder.BIG_ENDIAN);
      bb.asCharBuffer().put("ABC");
      System.out.println(toString(bb.array()));


      bb.rewind();
      bb.order(ByteOrder.LITTLE_ENDIAN);
      bb.asCharBuffer().put("ABC");
      System.out.println(toString(bb.array()));

   }

   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();
   }
}



PreviousNext

Related