читать строку из последовательности байтовых массивов - PullRequest
0 голосов
/ 01 ноября 2019

Я получаю данные от Bluetooth BLE следующим образом, максимум 250 байтов.

onDataReceived(byte[] data) {
  my_readline();  // <-- how could I implement this
}

данные являются строковыми, но фрагментированными. Итак, как правильно определять строки из поступающих байтовых массивов. или было бы хорошо, если бы можно было также конвертировать полученные данные в inputStream.

Ответы [ 2 ]

0 голосов
/ 01 ноября 2019

Вы можете преобразовать байтовый массив в строку,

String inputStr = new String(data, "UTF-8");

А если вы хотите преобразовать в InputStream,

InputStream dataInputStream = new ByteArrayInputStream(data); 
0 голосов
/ 01 ноября 2019

Вы можете сделать это с помощью ByteArrayInputStream и превратить его в BufferedReader. Он не очень чистый, хотя и должен работать.

    InputStream inputStream = new ByteArrayInputStream(data);
    BufferedReader buffReader = new BufferedReader(new InputStreamReader(inputStream));
...