Ver Mensaje Individual
  #1 (permalink)  
Antiguo 25/06/2013, 05:31
antoniuskas
 
Fecha de Ingreso: junio-2009
Mensajes: 30
Antigüedad: 15 años, 6 meses
Puntos: 0
Leer BMP en java

Tengo el siguiente código que lee un bmp byte a byte en java y que lo muestre en hexadecimal, pero los negativos me los muestra mal. ¿Como puedo hacer para que se muestre bien?, por ejemplo el tercer byte debería ser F2 y muestra
ffffff2.

Código:
package leerbmp;

import java.io.BufferedInputStream;
import java.io.DataInputStream;
import java.io.EOFException;
import java.io.FileInputStream;
import java.io.IOException;

public class LeerBmp {
	
	public static void main(String[] args) {
		int contador=0;
		try{
			FileInputStream archivo = new FileInputStream("prueba.bmp");
			BufferedInputStream buff = new BufferedInputStream(archivo);
			DataInputStream datos = new DataInputStream(buff);
			try{
				while (true){
					int in = datos.readByte();
					System.out.printf("%d - %h - %d \n",contador++, in,in);
					
				}
			}catch(EOFException eof){
					buff.close();
				}
			}catch(IOException e){
				System.out.println("Error  " + e.toString());
			}
		}

	}
Lo que muestra:
Contador - Hexadecimal - Decimal
0 - 42 - 66
1 - 4d - 77
2 - fffffff2 - -14
3 - 6 - 6
4 - 0 - 0
5 - 0 - 0
Saludos y gracias.