Ну, у Java нет концепции беззнаковых байтов ... тип byte
всегда подписан со значениями от -128 до 127 включительно.Однако это будет прекрасно взаимодействовать с другими системами, которые работали со значениями без знака, например, код C #, записывающий байт «255», создаст файл, в котором то же значение читается как «-1» в Java.Просто будьте осторожны, и все будет в порядке.
РЕДАКТИРОВАТЬ: вы можете преобразовать подписанный байт в int
со значением unsigned очень легко, используя битовую маску.Например:
byte b = -1; // Imagine this was read from the file
int i = b & 0xff;
System.out.println(i); // 255
Выполните всю свою арифметику, используя int
, а затем приведите обратно к byte
, когда вам нужно будет снова записать ее.
Обычно вы читаете двоичные данные изиз файлов, использующих FileInputStream
или, возможно, FileChannel
.
Трудно понять, что еще вы ищете в данный момент ... если вы можетеукажите более подробную информацию в вашем вопросе, возможно, мы сможем вам больше помочь.