我必须使用Java读取旧格式的二进制文件.
简而言之,该文件有一个标题,由几个整数,字节和固定长度的char数组组成,后跟一个记录列表,它们也包含整数和字符.
在任何其他语言中,我将创建structs(C/C++)或records(Pascal/Delphi),它们是标题和记录的逐字节表示.然后我将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;
Run Code Online (Sandbox Code Playgroud)
用Java做类似事情的最佳方法是什么?我是否必须自己阅读每一个值,还是有其他方法来做这种"块读"?