Проблема с вашим оператором присваивания.Массив во входном потоке совпадает с объявленным:
byte[] b = new byte[10];
Однако, когда вы используете функцию String getBytes (), вы создаете новый массив и присваиваете его значение b.По сути, вы сделали следующее:
byte[] tmp = someText.getBytes(); //get bytes creates a new array
b = tmp;
Для получения результатов, которые вы хотите увидеть, вам нужно получить байтовые данные, а затем скопировать их в исходный массив:
byte[] tmp = someText.getBytes();
for(int i=0;i < Math.min(tmp.length, b.length);i++) {
b[i] = tmp[i];
}
это приведет к ожидаемому вами поведению.