Java でレガシー形式のバイナリ ファイルを読み取る必要があります。
簡単に言えば、ファイルには、いくつかの整数、バイト、および固定長の文字配列で構成されるヘッダーがあり、その後に整数と文字で構成されるレコードのリストが続きます。
他の言語では、ヘッダーとレコードのバイト単位の表現であるstruct
s (C/C++) またはs (Pascal/Delphi) を作成します。record
次にsizeof(header)
、バイトをヘッダー変数に読み込み、レコードに対して同じことを行います。
このようなもの: (Delphi)
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で似たようなことをする最善の方法は何ですか? すべての値を独自に読み取る必要がありますか、またはこの種の「ブロック読み取り」を行う他の方法はありますか?