Java и неподписанные байты [дубликаты]

На этот вопрос уже есть ответ:

Каков наилучший способ обойти тот факт, что ВСЕ байты Java подписаны? 7 ответов

Мне нужно использовать массив байтов без знака. Мне нужно отправить определенные символы по сети на сервер, и некоторые из этих символов больше, чем 127.

У меня есть упрощенная версия кода ниже, чтобы попытаться понять концепцию:

int i= 160;
byte j = (byte) i;
System.out.println((byte)i);
System.out.println(j);

и это дает вывод:-96 -96

Мне нужно напечатать 160. Поскольку сервер ожидает байт 160 и, если он получает -96, он не принимает значение. Причина, по которой я использовал int, заключается в том, что когда я читал, как обойти проблему, я часто сталкивался с предложением просто использовать int, но я не совсем понимаю, так как мне нужно, чтобы мой массив имел тип byte .

Это часть моего кода, куда я отправляю массив:

public boolean send(byte[] data) {
    try {
     out.write(data); // Write the data to the outStream
     out.flush();
    } catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return false; // Return false if the TCP Transmit failed 
// }
return false;
}

Я был бы очень признателен, если бы кто-нибудь мне помог.

Ответы на вопрос(4)

Ваш ответ на вопрос