Buffer Example of Endian differences

From Java Example Source Code

Jump to: navigation, search

Contents

[edit] Overview - Buffer Example of Endian differences

This is a buffer example of Endian differences.

[edit] Java Source Code

  • Package: com.bruceeckel
  • File: Endians.java
package com.bruceeckel;
 
//: c12:Endians.java
//Endian differences and data storage.
//From 'Thinking in Java, 3rd ed.' (c) Bruce Eckel 2002
//www.BruceEckel.com. See copyright notice in CopyRight.txt.
 
import java.nio.ByteBuffer;
import java.nio.ByteOrder;
 
public class Endians {
 
    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()));
 
    }
 
    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();
    }
}

[edit] What Result You Can Get

Run the program, you will get:


[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]


[edit] Required External Library for this Java Example

Need nothing.


[edit] How to Run this Java Example Program

We recommend running this Java example program with Eclipse.

For assistance in working with Eclipse, please see How to Run Java Program with Eclipse.

It's fairly easy.

Personal tools