2016-02-23 3 views
-4

пожалуйста, прочитайте мой вопрос внимательно, то судить, если это дубликатJava разобрать двоичный файл и преобразовать в шестнадцатеричную

Я зеленый, если есть какая-то ошибка в моем описании, пожалуйста, понять

Я хочу проанализировать двоичный файл с помощью java. первый ПИК файл открыт редактор шестнадцатеричных, вы можете видеть из 000000 0 до 000000 3 является Эф Эф Эф Эф

enter image description here

вот мой код

String filepath = "D:\\CHR_2_20151228132500.dat.gz"; 
File file = new File(filepath); 
FileInputStream fis = new FileInputStream(file); 

GZIPInputStream gzip = new GZIPInputStream(fis); 

DataInputStream din = new DataInputStream(gzip); 

byte[] bytes = new byte[20]; 

din.read(bytes, 0, 4); 

for (byte b : bytes) { 
    String str = Integer.toHexString(b); 
    System.out.print(str); 
} 

это результат я анализирую вы можете видеть, что есть FFFFFF между каждым эф и несколькими нулями, приложенных

enter image description here

Я хочу получить данные так же, как и в шестнадцатеричном редакторе. Как я могу это получить?

+0

Не размещать фотографии текста здесь: разместить текст; и не используйте форматирование цитаты для текста, который не цитируется. – EJP

ответ

0
String str = Integer.toHexString(b); 

Байты подписаны на Java. Вам нужно:

String str = Integer.toHexString(b & 0xff); 

а затем обеспечить две цифры нужно:

String str = Integer.toHexString((b & 0xff)+256).substring(1); 
Смежные вопросы