所以我试图找出为什么当我插入/放入ByteBuffer时,索引总是比它们应该大1。例如:
public static void main(String[] args) throws Exception
{
byte[] memory = new byte[10]; // 3MB memory
ByteBuffer byteBuffer = ByteBuffer.wrap(memory);
char character = 'G';
byteBuffer.putChar(0, character); // 71 at index 1
byteBuffer.putChar(5, character); // 71 at index 6
byteBuffer.putChar(3, character); // 71 at index 4
for(Byte myByte : byteBuffer.array())
{
System.out.println(myByte.byteValue());
}
}
如何将其插入到我想要的索引中?
答案 0 :(得分:2)
该功能的文档说明:
在当前中写入包含给定char值的两个字节 字节顺序,在给定索引处的缓冲区中。
听起来你有一个big-endian字节顺序,因此你期望看到的值被写入第二个位置(可能在第一个位置有一个0字节)。
您应该使用等效的put
方法,它会写一个字节。