System.out.println("ByteBuffer order before: " + backing.order());
ByteBuffer backing = ...;
backing = backing.duplicate(); // or slice()
System.out.println("ByteBuffer order after: " + backing.order());
System.out.println("FloatBuffer order before: " + backing.order());
FloatBuffer backing = ...;
backing = backing.duplicate(); // or slice()
System.out.println("FloatBuffer order after: " + backing.order());
ByteBuffer order before: LITTLE_ENDIAN
ByteBuffer order after: BIG_ENDIAN
FloatBuffer order before: LITTLE_ENDIAN
FloatBuffer order after: LITTLE_ENDIAN
EDIT:
According to:
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4715166
this is not a bug… yet it is ‘in progress’ ?
EDIT 2:
Don’t you think this is a little bit confusing for … anyone?
Check Amazon© for the new edition of:
“Learning Java (and corrupting your data) in 24 hours”
Appendix B: (code-samples)
void processFloatBuffer(FloatBuffer buffer)
{
FloatBuffer view = buffer.duplicate();
// 1337: *munching some chewy floats*
while(view.hasRemaining())
view.put(view.get() * 3.1415f);
}
void processByteBuffer(ByteBuffer buffer)
{
ByteBuffer view = buffer.duplicate();
// TEH H0RRoR: *corrupts your data*
while(view.hasRemaining())
view.putFloat(view.getFloat() * 3.1415f);
}
Next time you are the poor bastard…
