Oi, pessoal.

Estou tentando ler um arquivo binário onde valores estão
armazenados na forma de inteiros de quatro bytes sem sinal.

Leio o arquivo byte a byte e monto o inteiro correspondente.
Entretanto, como descobri tarde demais, o tipo "int" do Java
é *sempre* "signed int".  Assim, quando leio alguns valores
tudo funciona perfeitamente bem.  Com outros valores,
entretanto, acabo obtendo números negativos ...

Experimentei fazer uma extensão da classe RandomAccessFile
e coloquei lá um método chamado readUnsignedInt(), mas
como disse não está funcionando bem ...

   public int readUnsignedInt() throws IOException
   {
      byte b1, b2, b3, b4;
      int result;

      b1 = this.readByte();
      b2 = this.readByte();
      b3 = this.readByte();
      b4 = this.readByte();

      result = (b1 << 24) + (b2 << 16) + (b3 << 8) + b4

      return result;
   }

Alguém pode me ajudar ?

[]s
mvfm
- mvfm @ home ! - mvfm @ home ! - mvfm @ home ! - mvfm @ home ! -
Marcus Vinicius F. Margarites                 [EMAIL PROTECTED]
Av. Dep. Ânuar Menhem, 1212 - Apto. 31-L      http://www.mvfm.net
Santa Branca - Belo Horizonte - MG            ICQ UIN #3277627
CEP 31565-240 - Fone ( 31 ) 3499-3734         Linux User #174905


------------------------------ LISTA SOUJAVA ---------------------------- 
http://www.soujava.org.br  -  Sociedade de Usuários Java da Sucesu-SP 
dúvidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
para sair da lista: envie email para [EMAIL PROTECTED] 
-------------------------------------------------------------------------

Reply via email to