读书人

关于Stream的简单有关问题,下面几个函

发布时间: 2012-03-18 13:55:39 作者: rapoo

关于Stream的简单问题,下面几个函数,改成C#应该怎么写呢?谢谢

Delphi(Pascal) code
procedure info.LoadFromFile(const FileName: string)var  MS:TMemoryStream;begin  MS := TMemoryStream.Create;  try    MS.LoadFromFile(FileName);    LoadFromStream(MS, IsShallow);  finally    MS.Free;  end;end;//==============================================================================procedure info.LoadFromStream(Stream: TStream; IsShallow: Boolean = False);begin  Stream.ReadBuffer(ID,          SizeOf(Smallint));  Stream.ReadBuffer(companyID,     SizeOf(Smallint));    Stream.ReadBuffer(Type,   SizeOf(Smallint));    Stream.ReadBuffer(UserID,          SizeOf(Smallint));  Stream.ReadBuffer(UpdateTime,      SizeOf(TDateTime));end;//==============================================================================procedure info.SaveToFile(const FileName: string);var  MS:TMemoryStream;begin  MS := TMemoryStream.Create;  try    SaveToStream(MS, IsShallow);    MS.SaveToFile(FileName);  finally    MS.Free;  end;end;//==============================================================================procedure info.SaveToStream(Stream: TStream);begin  Stream.WriteBuffer(ID,          SizeOf(Smallint));  Stream.WriteBuffer(companyID,     SizeOf(Smallint));  Stream.WriteBuffer(Type,   SizeOf(Smallint));  Stream.ReadBuffer(ImeMode,     SizeOf(Smallint));  Stream.WriteBuffer(UserID,          SizeOf(Smallint));  Stream.WriteBuffer(UpdateTime,      SizeOf(TDateTime));end;


[解决办法]
byte [] ReadBuffer=new byte[255];
byte [] WriteBuffer = new byte[255];
FileStream fread = new FileStream("d:\\test.txt",FileMode.Open,FileAccess.Read);

fread.Read(ReadBuffer,0,4);
fread.Close();

Array.Copy(ReadBuffer, WriteBuffer,4);
FileStream fwrite = new FileStream("d:\\test.txt", FileMode.Open, FileAccess.Write);
fwrite.Write(WriteBuffer, 0, 4);
fwrite.Flush();
fwrite.Close();
基本操作都在这里了,看着改吧
至于各种类型转byte数组,可以参看BitConverter.GetBytes或者问度娘

读书人网 >.NET

热点推荐