Решение, которое я нашел, загружало https://dl-ssl.google.com/android/repository/platform-tools_r25.0.1-windows.zip
Я использовал DataInputStream для чтения двоичных файлов, и я пишу правила в Java.;) Двоичные файлы могут иметь примерно любой формат, таким образом, нет никакого общего правила для того, как считать их.
Платформы не всегда делают вещи более простыми. В Вашем случае файл описания длиннее, чем код, чтобы просто считать данные с помощью DataInputStream.
public static void parse(DataInput in) throws IOException {
// file:
// header: FIXED("MAGIC")
String header = readAsString(in, 5);
assert header.equals("MAGIC");
// body: content(10)
// ?? not sure what this means
// content:
for(int i=0;i<10;i++) {
// value1: BYTE
byte value1 = in.readByte();
// value2: LONG
long value2 = in.readLong();
// value3: STRING(10)
String value3 = readAsString(in, 10);
}
}
public static String readAsString(DataInput in, int len) throws IOException {
byte[] bytes = new byte[len];
in.readFully(bytes);
return new String(bytes);
}
, Если Вы хотите иметь конфигурационный файл, Вы могли бы использовать Конфигурационный файл Java. http://www.google.co.uk/search?q=java+configuration+file
Синтаксический анализатор combinator библиотека является опцией. JParsec хорошо работает, однако это могло быть медленно.
Можно проанализировать двоичные файлы с синтаксическими анализаторами как JavaCC. Здесь можно найти простой пример. Вероятно, это немного более трудно, чем парсинг текстовых файлов.
Вы имеете изучающий мир синтаксических анализаторов. Хороший синтаксический анализатор является yacc, и может быть порт его для Java.
Использование Preon :
public class File {
@BoundString(match="MAGIC")
private String header;
@BoundList(size="10", type=Body.class)
private List<Body> body;
private static class Body {
@Bound
byte value1;
@Bound
long value2;
@BoundString(size="10")
String value3;
}
}
Данные декодирования:
Codec<File> codec = Codecs.create(File.class);
File file = codecs.decode(codec, buffer);
Сообщите мне, если у вас возникнут проблемы.