package code.kalter.longflight; /** * Удобная запись разных типов в байтовый массив * * @author KalterFive */ public class ByteArrayOutputStream { private final byte[] array; private int position; public ByteArrayOutputStream(int size) { array = new byte[size]; position = 0; } public void writeByte(byte b) { array[position++] = b; } public void writeShort(short s) { writeByte((byte) (s >> 8)); writeByte((byte) s); } public void writeInt(int i) { writeShort((short) (i >> 16)); writeShort((short) i); } public void writeLong(long l) { writeInt((int) (l >> 32)); writeInt((int) l); } public void writeByteArray(byte[] array, int length) { for (int i = 0; i < length; i++) { writeByte(array[i]); } } public void writeShortArray(short[] array, int length) { for (int i = 0; i < length; i++) { writeShort(array[i]); } } public void writeIntArray(int[] array, int length) { for (int i = 0; i < length; i++) { writeInt(array[i]); } } public void writeLongArray(long[] array, int length) { for (int i = 0; i < length; i++) { writeLong(array[i]); } } public byte[] toArray() { return array; } }