我有一个字节数组,大小为n,这个数组真的代表一个数组大小不等的n / 2.在将数组写入磁盘文件之前,我需要通过添加存储在另一个数组中的偏置值来调整值.在C中,我将把字节数组的地址分配给一个短数组的指针,并使用指针算术或使用一个联合.
在Java中如何做到这一点 – 我对Java BTW很新.
解决方法
您可以使用java.nio.ByteBuffer包装字节数组.
byte[] bytes = ... ByteBuffer buffer = ByteBuffer.wrap( bytes ); // you may or may not need to do this //buffer.order( ByteOrder.BIG/LITTLE_ENDIAN ); ShortBuffer shorts = buffer.asShortBuffer( ); for ( int i = 0,n=shorts.remaining( ); i < n; ++i ) { final int index = shorts.position( ) + i; // Perform your transformation final short adjusted_val = shortAdjuster( shorts.get( index ) ); // Put value at the same index shorts.put( index,adjusted_val ); } // bytes now contains adjusted short values