54 lines
1.2 KiB
Java
54 lines
1.2 KiB
Java
/**
|
|
* fast data-reading from a byte-array
|
|
*
|
|
* @author ab
|
|
*/
|
|
package btools.mapaccess;
|
|
|
|
|
|
final class ByteDataWriter
|
|
{
|
|
private byte[] ab;
|
|
private int aboffset;
|
|
|
|
public ByteDataWriter( byte[] byteArray )
|
|
{
|
|
ab = byteArray;
|
|
}
|
|
|
|
public void writeInt( int v )
|
|
{
|
|
ab[aboffset++] = (byte)( (v >> 24) & 0xff );
|
|
ab[aboffset++] = (byte)( (v >> 16) & 0xff );
|
|
ab[aboffset++] = (byte)( (v >> 8) & 0xff );
|
|
ab[aboffset++] = (byte)( (v ) & 0xff );
|
|
}
|
|
|
|
public void writeLong( long v )
|
|
{
|
|
ab[aboffset++] = (byte)( (v >> 56) & 0xff );
|
|
ab[aboffset++] = (byte)( (v >> 48) & 0xff );
|
|
ab[aboffset++] = (byte)( (v >> 40) & 0xff );
|
|
ab[aboffset++] = (byte)( (v >> 32) & 0xff );
|
|
ab[aboffset++] = (byte)( (v >> 24) & 0xff );
|
|
ab[aboffset++] = (byte)( (v >> 16) & 0xff );
|
|
ab[aboffset++] = (byte)( (v >> 8) & 0xff );
|
|
ab[aboffset++] = (byte)( (v ) & 0xff );
|
|
}
|
|
|
|
public void writeBoolean( boolean v)
|
|
{
|
|
ab[aboffset++] = (byte)( v ? 1 : 0 );
|
|
}
|
|
|
|
public void writeByte( int v )
|
|
{
|
|
ab[aboffset++] = (byte)( (v ) & 0xff );
|
|
}
|
|
|
|
public void writeShort( int v )
|
|
{
|
|
ab[aboffset++] = (byte)( (v >> 8) & 0xff );
|
|
ab[aboffset++] = (byte)( (v ) & 0xff );
|
|
}
|
|
}
|