понеділок, 16 липня 2012 р.

Суміщення двох байт в Java

Постала необхідність прочитати з приладу потік байтів і їх перетворити на ряд двобайтових чисел. Готового методу в Java я не знайшов. Рішення підказав всезнаючий Інтернет:

public static short twoBytesToShort(byte b1, byte b2) {
          return (short) ((b1 << 8) | (b2 & 0xFF));
}
Інший приклад знайшов в книзі по Java. Тож це, також, можна зробити за допомогою потоку вводу даних DataInputStream:
FileInputStream fin=new FileInputStream("D://result.txt");
DataInputStream din=new DataInputStream(fin);
short s=din.readShort();
Якщо байти об'єднані в неправильній послідовності, тобто перший байт має бути другим, а другий першим в двобайтовому слові, то можна скористатись методом reverseBytes():
short k=Short.reverseBytes(s);