我正在使用 Delphi Prism 并使用 BinaryWriter 创建和写入二进制文件,如下所示。
method TUnit.Write(bw:BinaryWriter);
var
i:Integer;
begin
bw.write(ord(uType));
bw.Write(ord(State));
bw.Write(Address);
bw.Write(SubAddress);
for i:=1 to 20 do
bw.Write(fDefs[i]);
end;
我对你的问题是这个。write 方法是否在没有换行符或回车的情况下每行或字节后的字节或字符后的字节写入?
我问这个问题的原因是因为在没有特定数量的字符(如字符数组)的情况下写入和读取字符串时我很困惑。
例如:
method WritetoFile;
var
x:integer;
thestr:string;
begin
BinaryWriter thefile := new BinaryWriter(File.Create("test.dat"));
thefile.write(thestr);
thefile.write(x);
thefile.Close;
end;
method ReadFromFile;
var
x:integer;
thestr:string;
begin
BinaryReader thefile := new BinaryReader(File.OpenRead("test.dat"));
thestr:=thefile.ReadString;
x:=thefile.ReadInt32;
thefile.Close;
end;
这就是我编写程序的方式,它似乎工作正常,但正如我所说,我很困惑。
当它是字符串数据类型时,它如何知道要读取或写入多少字节或字符长度而不给它特定的读取长度?