Arquivo em bytes

Bom dia, preciso pegar algumas informações do cabeçalho de um arquivo, para isto, estou transfomando o arquivo em bytes para poder pega-las. Mas as informações não aparecem quando percorro os bytes. Existe alguma forma de transformar um arquivos em bytes para percorrer seu cabecalho?
Por exemplo, eu tenho um cabecalho de arquivo que nos primeiros 4 bytes informa seu tamanho, desta forma eu consigo resgatar esta informação?
ou tem outra?
Valeu!!!

  1. O arquivo já são bytes. Não se “transforma arquivos em bytes”;
  2. Para ler os bytes do arquivo, você usa um dos Streams;
  3. Um Stream prático para ler dados no formato binário é o DataInputStream. Ele possui métodos como readInt(), que lê 4 bytes e retorna na forma de um int.

Ok, no meu caso preciso pegar algumas informações do cabecalho de um arquivo de audio, ja testei varias coisas diferentes, javazoom, AudioClip, AudioSystem entre outros. A unica forma de ter a informação que preciso é pegar do cabecalho. É possivel fazer algo deste tipo?

Se você conhecer o cabeçalho, tranquilamente. Só cuidado com informações do tipo “unsigned”. Como muitos arquivos são gravados em C, e lá existe o tipo de dados sem sinal, pode ser necessário fazer promoção no Java.

Agora, por mim que a classe AudioSystem e a DataLine tinham métodos para decodificar o cabeçalho.

montei um metodo para imprimir os bytes mas quando transformo os bytes em String usando o new String(), aparece uma String com uma porção de numeros. Não deveria aparecer algo legivel? palavras e valores?

Você conhece a estrutura desse arquivo que você quer ler?

Geralmente só vai ter informação lá dentro em binário, dificilmente vai aparecer uma palavra. E os números que você está imprimindo são valores. Só resta saber de quantos em quantos bytes ler, e que valor tem em que posição.

Mas isso você só descobre se souber o formato do arquivo que estiver lendo, e tiver sua especificação.

Estou tentando ler informações de um arquivo wav, a informação que tenho é esta: https://ccrma.stanford.edu/courses/422/projects/WaveFormat/

Como faço para saber estas informações que vc citou?

Ué, é só ler a especificação. Pelo que ela diz, só os primeiros 4 bytes conteriam algum tipo de texto. A palavra “RIFF”, em formato ascii.