TFileStream用法
10246 点击·0 回帖
![]() | ![]() | |
![]() | // 写入中文 procedure TForm1.btn1Click(Sender: TObject); var Stream : TFileStream; fn : string; fname : string; Size : Integer; Buffer : TBytes; Encoding : TEncoding; begin fn := ExtractFilePath(Application.ExeName) + 'config.dat'; try Stream := TFileStream.Create(fn, fmCreate); Stream.Position := 0; fname := '这是一个测试'; Encoding := TEncoding.Unicode; Buffer := Encoding.GetBytes(fname); Size := Length(Buffer); Stream.WriteBuffer(Pointer(Buffer)^, Size); finally Stream.Free; end; end; // 读取中文 procedure TForm1.btn2Click(Sender: TObject); var Stream : TFileStream; fn : string; fname : string; Size : Integer; Buffer : TBytes; Encoding : TEncoding; begin fn := ExtractFilePath(Application.ExeName) + 'config.dat'; try Stream := TFileStream.Create(fn, fmOpenRead); Stream.Position := 0; // fname := '这是一个测试'; // Encoding := TEncoding.Unicode; // Buffer := Encoding.GetBytes(fname); // Size := Length(Buffer); Size := 12; SetLength(Buffer, Size); Stream.ReadBuffer(Pointer(Buffer)^, Size); Size := TEncoding.GetBufferEncoding(Buffer, Encoding); // fname := Encoding.GetString(Buffer, Size, Length(Buffer) - Size); fname := WideStringOf(Buffer); finally Stream.Free; end; end; | |
![]() | ![]() |