Ler arquivo escrito em bytes

Olá galera estou precisando ler um arquivo que vem escrito em bytes, mas eu preciso le-lo como hexa.

deixa eu exemplificar como vem o arquivo

000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

                                    ßPég&å?Fäö\È ;TÁ&ßQwåÍùIBaßRO|úÃXg!¨jÖ³Î??ÜßSbùÜýéIwH´!ÞÖ?ßTçÉçEjÒßâos½K/J©ßUég&å?Fäö\È 

Na verdade ele é bem assim.

se eu abro com um editor de hexadecimal, ele consegue ler normalmente e me mostrar o hexa, é disso que eu preciso.

se alguem puder me dar uma ajuda, ficaria grato.

eu achei este codigo aqui, mas creio que nao ajuda no meu problema porque a entrada dos bytes é feito tipo 0x31… etc

public class ImpressaoBytes {
    public static void main(String[] args) {
        System.out.println(paraStringHexa(
            new byte[] { 0x0F, 0x7f, 0x3d, 0x00, -0x23 }));
    }

    private static String paraStringHexa(byte[] bytes) {
        StringBuilder s = new StringBuilder();
        for (int i = 0; i < bytes.length; i++) {
            int parteAlta = ((bytes[i] >> 4) & 0xf) << 4;
            int parteBaixa = bytes[i] & 0xf;
            if (parteAlta == 0) s.append('0');
            s.append(Integer.toHexString(parteAlta | parteBaixa));
        }
        return s.toString();
    }
}

eu preciso que converta todo o arquivo em hexa.

Abraço.

obs:Agora que to vendo aonde usa o >> e << em java rsrs

Você poderia explicar melhor? Talvez, postar algum descritivo do formato de arquivo.

hmm…

bom eu tenho aquele sem numero de bytes ali que vem em um arquivo.txt eu preciso le-lo (ok esta parte é facil e ja ta feita), mas obvio que o arquivo é lido como uma string, até ai nao tem problema desde que eu ache um metodo que converta uma string que na verdade contem representacoes de bytes para hexa.

exemplificando

eu tenho isto daqui em uma string

String bytes = " ßPég&å?"

agora eu preciso armazenar em outra string o mesmo valor so que representando como hexa

seria mais ou menos assim

String hex = bytes.toHex();

resultado hex é igual a 01FAB23C ou qualquer coisa parecida.

me fiz entender?

Abraço.

Não leia o arquivo como uma String. O java pode fazer uma série de conversões de encoding e danificar o seu arquivo. Use String apenas para guardar informação de texto, não informação binária bruta.

Use o método read() da classe InputStream (preferencialmente através de um BufferedInputStream). Ele lê seu arquivo byte-a-byte, como um editor hexadecimal faria. Dê uma olhada na classe DataInputStream para ler também inteiros, floats e outros dados.

Então, consulte a documentação do seu sistema para descobrir o que que cada byte do arquivo significa.