/* package whatever; // don't place package name! */
import java.util.*;
import java.io.*;
import java.nio.*;
import java.nio.channels.*;
class Ideone {
byte[] fileImage = {0x61, 0x62, 0x63, 0x0, 0x0, 0x5E, (byte)0xD0, (byte)0xB2};
ReadableByteChannel ch = Channels.newChannel(fis);
ByteBuffer buf = ByteBuffer.allocate(64*1024);
ch.read(buf);
buf.position(0);
// max 4, null terminated, UTF-8
{
byte[] bufS = new byte[4];
buf.get(bufS);
a
= new String(bufS,
0, getTerm
(bufS
),
"UTF-8"); }
// little endian, unsigned int32
buf.order(ByteOrder.LITTLE_ENDIAN);
long b = buf.getInt() & 0xFFFFFFFFL;
System.
out.
println("a["+a
+"] a.len["+a.
length()+"] b["+b
+"]"); }
}
private static int getTerm(byte[] b){
for(int i=0,sz=b.length; i<sz; i++){
if(b[i] == 0){return i;}
}
return b.length;
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5pby4qOwppbXBvcnQgamF2YS5uaW8uKjsKaW1wb3J0IGphdmEubmlvLmNoYW5uZWxzLio7CgpjbGFzcyBJZGVvbmUgewoJcHVibGljIHN0YXRpYyB2b2lkIG1haW4gKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBqYXZhLmxhbmcuRXhjZXB0aW9uIHsKCQlieXRlW10gZmlsZUltYWdlID0gezB4NjEsIDB4NjIsIDB4NjMsIDB4MCwgMHgwLCAweDVFLCAoYnl0ZSkweEQwLCAoYnl0ZSkweEIyfTsKCQkKCQl0cnkoSW5wdXRTdHJlYW0gZmlzID0gbmV3IEJ5dGVBcnJheUlucHV0U3RyZWFtKGZpbGVJbWFnZSkpewoJCQlSZWFkYWJsZUJ5dGVDaGFubmVsIGNoID0gQ2hhbm5lbHMubmV3Q2hhbm5lbChmaXMpOwoJCQlCeXRlQnVmZmVyIGJ1ZiA9IEJ5dGVCdWZmZXIuYWxsb2NhdGUoNjQqMTAyNCk7CgkJCWNoLnJlYWQoYnVmKTsKCQkJYnVmLnBvc2l0aW9uKDApOwoKCQkJLy8gbWF4IDQsIG51bGwgdGVybWluYXRlZCwgVVRGLTgKCQkJU3RyaW5nIGE7CgkJCXsKCQkJCWJ5dGVbXSBidWZTID0gbmV3IGJ5dGVbNF07CgkJCQlidWYuZ2V0KGJ1ZlMpOwoJCQkJYSA9IG5ldyBTdHJpbmcoYnVmUywgMCwgZ2V0VGVybShidWZTKSwgIlVURi04Iik7CgkJCX0KCgkJCS8vIGxpdHRsZSBlbmRpYW4sIHVuc2lnbmVkIGludDMyCgkJCWJ1Zi5vcmRlcihCeXRlT3JkZXIuTElUVExFX0VORElBTik7CgkJCWxvbmcgYiA9IGJ1Zi5nZXRJbnQoKSAmIDB4RkZGRkZGRkZMOwoJCQkKCQkJU3lzdGVtLm91dC5wcmludGxuKCJhWyIrYSsiXSBhLmxlblsiK2EubGVuZ3RoKCkrIl0gYlsiK2IrIl0iKTsKCQl9Cgl9CgoJcHJpdmF0ZSBzdGF0aWMgaW50IGdldFRlcm0oYnl0ZVtdIGIpewoJCWZvcihpbnQgaT0wLHN6PWIubGVuZ3RoOyBpPHN6OyBpKyspewoJCQlpZihiW2ldID09IDApe3JldHVybiBpO30KCQl9CgkJcmV0dXJuIGIubGVuZ3RoOwoJfQp9Cg==