Pessoal,
Como posso fazer para ler bytes em um arquivo .dat…
Uso o FileChooser, seleciono o arquivo repleto de bytes, crio um objeto do tipo File… tudo certinho… mas como posso ler este arquivo e jogar no console ou em uma lista…
Abaixo segue pedaços do codigo da minha linha de raciocinio, se alguém puder me dar umas dicas… agradeço!
JFileChooser guiAbrirArquivo = new JFileChooser();
guiAbrirArquivo.showOpenDialog(this);
guiAbrirArquivo.setVisible(true);
File arquivo = guiAbrirArquivo.getSelectedFile();
try {
FileReader reader = new FileReader(arquivo);
BufferedReader leitor = new BufferedReader(reader);
}
Arquivos .dat não tem um formato específico.
A dúvida é, você conhece o formato do arquivo?
Se não conhecer, fica difícil…
Ou você quer jogar os hexas mesmo? Tipo dump:
00 0A F0 AE F1 a98.1
Eu estou lendo uma placa serial…
Então gravo em um arquivo “teste.dat” os bytes que escuto em minha serial…
O que eu preciso agora é ler este arquivo, gostaria de imprimir os bytes, e também seria interessante converter esses bytes para hexa…
Tudo isto para estudar o protocolo de comunicação desta placa.
Valeu,
Neste caso,
- leia o buffer byte a byte
- Use Integer.toHexString(byteLido) para converter os bytes em hexa. Se preferir letras maiúsculas, pode her Integer.toHexString(byteLido).toUpperCase();
- Para transformar num char, você pode fazer um cast direto.
char c = (char) byteLido; E então imprimir o seu char na tela. No mais, é torcer para os dados estarem codificados em UTF-8 (se a saída for texto, muito provavelmente estará).
Numa primeira etapa, não seria melhor pegar um editor hexa qualquer? Existem diversos gratuitos ou shareware na internet…
Só um comentário: Da próxima vez que for colocar códigos no GUJ, dá uma lida nesse artigo:
http://www.guj.com.br/posts/list/50115.java
Ele vai te ensinar a fazer isso corretamente, além de ensinar alguns recursos interessantes do GUJ! 