파일을 바이트단위로읽어서

텍스트 16진수 10진수로 표현하고싶습니다


FileInputStream is=new FileInputStream(mFilename);
                       while(true){
                           int data=is.read();
                           if(data==-1)
                               break;
                           byte b=(byte)data;
                           System.out.printf("%02X",b);
                       }

여기서 b 가 char 인지 아닌지 어떻게구별할수있나요?

그리고 16진수 10진수 표현방법좀 부탁합니다