1 package code
.kalter
.longflight
;
4 * Удобное чтение разных типов с байтового массива
8 public class ByteArrayInputStream
{
10 private final byte[] array
;
13 public ByteArrayInputStream(byte[] array
) {
18 public byte readByte() {
19 return array
[position
++];
22 public short readShort() {
23 // AND для того, чтобы читать байт без знака
24 final short a
= (short) (readByte() & 0x00FF);
25 final short b
= (short) (readByte() & 0x00FF);
26 return (short) ((a
<< 8) | b
);
29 public int readInteger() {
30 final int a
= readShort();
31 final int b
= readShort();
32 return (int) ((a
<< 16) | b
);
35 public long readLong() {
36 final long a
= readInteger();
37 final long b
= readInteger();
38 return (long) ((a
<< 32) | b
);
41 public byte[] toByteArray(int size
) {
42 final byte[] array
= new byte[size
];
43 for (int i
= 0; i
< size
; i
++) {
44 array
[i
] = readByte();
49 public short[] toShortArray(int size
) {
50 final short[] array
= new short[size
];
51 for (int i
= 0; i
< size
; i
++) {
52 array
[i
] = readShort();
57 public int[] toIntArray(int size
) {
58 final int[] array
= new int[size
];
59 for (int i
= 0; i
< size
; i
++) {
60 array
[i
] = readInteger();
65 public long[] toLongArray(int size
) {
66 final long[] array
= new long[size
];
67 for (int i
= 0; i
< size
; i
++) {
68 array
[i
] = readLong();