Como faço para converter array de bytes em int. Eu consegui fazer isso e colocar em uma string mas não consigo colocar em um int.
// código para string
byte []nomeBytes = new byte[tamString]; // passo qtd bytes
r1.read(nomeBytes);// pego bytes e coloco no array nomeBytes
String nome = new String(nomeBytes,"UTF-16");
// código para int
byte[] pegaInteiro = new byte[4];
r1.read(pegaInteiro);
int num = converteByteParaInt(pegaInteiro)
Eu sei que estou alguns meses atrasado… Mas fica aí pra quem pesquisar essa solução.
Recomendo o uso da classe BigInteger.
byte[] byteArray = // ... Instancie e preencha as posições do array
int inteiroRetiradoDoArray = (new BigInteger( byteArray )).intValue();
ou
byte[] byteArray = // ... Instancie e preencha as posições do array
BigInteger biRetiradoDoArray = new BigInteger( byteArray );
int inteiroRetiradoDoArray = biRetiradoDoArray.intValue();
Se é mesmo um int, o vetor de byte vai ter 4 posições. Atenção, a classe BigInteger vai interpretar todos os bytes como pertecentes a um único inteiro; se tiver mais de quatro posições (bytes), pode ser que o vetor seja interpretado como um número bem maior do que o tipo int pode representar!
O interessante é que essas classes podem representar números com uma quantidade teoricamente ilimitada de bytes.
E recomendo o conhecimento dos construtores, métodos estáticos e não estáticos das classes BigDecimal (para reais) e BigInteger (para inteiros).