Мне нужно прочитать двоичный файл в устаревшем формате с помощью Java.
В двух словах файл имеет заголовок, состоящий из нескольких целых чисел, байтов и массивов символов фиксированной длины, за которым следует список записей, которые также состоят из целых чисел и символов.
На любом другом языке я бы создал struct
s (C/C++) или record
s (Pascal/Delphi), которые представляют собой побайтовые представления заголовка и записи. Затем я читал sizeof(header)
байта в переменную заголовка и делал то же самое для записей.
Что-то вроде этого: (Дельфи)
type
THeader = record
Version: Integer;
Type: Byte;
BeginOfData: Integer;
ID: array[0..15] of Char;
end;
...
procedure ReadData(S: TStream);
var
Header: THeader;
begin
S.ReadBuffer(Header, SizeOf(THeader));
...
end;
Как лучше всего сделать что-то подобное с Java? Должен ли я читать каждое отдельное значение отдельно или есть ли другой способ сделать такое «блочное чтение»?