如何往一个byte数组中的某个位置放入一个int或long 谢谢 如题 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 试试吧 static boolean putPrimitiveType2ByteArray(byte[] b, int start, int n) { if (b.length - start >= 4) { b[start + 0] = (byte) ((n >>> 24) & 0xFF); b[start + 1] = (byte) ((n >>> 16) & 0xFF); b[start + 2] = (byte) ((n >>> 8) & 0xFF); b[start + 3] = (byte) ((n >>> 0) & 0xFF); return true; } else { return false; } } static boolean putPrimitiveType2ByteArray(byte[] b, int start, long n) { if (b.length - start >= 8) { putPrimitiveType2ByteArray(b, 0, (int) ((n >>> 32) & 0xFFFFFFFF)); putPrimitiveType2ByteArray(b, 4, (int) ((n >>> 0) & 0xFFFFFFFF)); return true; } else { return false; } } java.nio.ByteBufferhttp://download.oracle.com/javase/6/docs/api/java/nio/ByteBuffer.html 可以先转化成string 然后string.getBytes();放到byte数组中,如果想其他操作 可以通过String转化 Buffer是好东西byte[] b = new byte[4];ByteBuffer bf = ByteBuffer.wrap(b).order(ByteOrder.LITTLE_ENDIAN);bf.putInt(0, 4315431);System.out.println(Arrays.toString(b));输出[39, -39, 65, 0]需要注意的是Buffer默认的是Big Endian的,如果要用Little Endian方式储存的话,需要调用order方法 新手求指教,关于如何取得文件中的指定字符的问题! 一个很菜的问题 关于java类中的几个小问题~~~ 如何获得spring中配置的datasource? 怎么会出现下面的错误 今天的湖人真假,呵呵 ZipOutputStream中 putNextEntry的作用是什么? wing$1.class和wing.class关系 关于JTree的问题,高手帮忙!在线等待 请问怎样用JDBC访问My SQL数据库啊? 画布大小 Quartz求助
if (b.length - start >= 4) {
b[start + 0] = (byte) ((n >>> 24) & 0xFF);
b[start + 1] = (byte) ((n >>> 16) & 0xFF);
b[start + 2] = (byte) ((n >>> 8) & 0xFF);
b[start + 3] = (byte) ((n >>> 0) & 0xFF);
return true;
} else {
return false;
}
} static boolean putPrimitiveType2ByteArray(byte[] b, int start, long n) {
if (b.length - start >= 8) {
putPrimitiveType2ByteArray(b, 0, (int) ((n >>> 32) & 0xFFFFFFFF));
putPrimitiveType2ByteArray(b, 4, (int) ((n >>> 0) & 0xFFFFFFFF));
return true;
} else {
return false;
}
}
java.nio.ByteBuffer
http://download.oracle.com/javase/6/docs/api/java/nio/ByteBuffer.html
ByteBuffer bf = ByteBuffer.wrap(b).order(ByteOrder.LITTLE_ENDIAN);
bf.putInt(0, 4315431);
System.out.println(Arrays.toString(b));输出[39, -39, 65, 0]
需要注意的是Buffer默认的是Big Endian的,如果要用Little Endian方式储存的话,需要调用order方法