紧急SOS~如何写二进制文件?

crackzzy 2003-08-24 05:59:01
我有一个类被序列化了
MemoryStream ms=new MemoryStream();
BinaryFormatter bf = new BinaryFormatter();
bf.Serialize(ms,mapinfo);
现在ms里存放的就是序列化好的二进制流。
请问我要怎么样把它写到一个二进制文件里呢?
如果可以的话请顺便给出把二进制文件读到一个MemoryStream里的代码~
我对文件操作这一块还不太熟悉,请尽可能给出详细代码,谢谢~~
...全文
52 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
crackzzy 2003-08-24
  • 打赏
  • 举报
回复
原来如此,不过看来我得好好补一下E文了,你上面的那个单词underlying我琢磨了半天不懂是什么意思,晕~~~~~~~~。
后来在金山词霸+SDK的帮助下才大概了解。哎~~高中没好好学英语,惭愧啊~~
帖子先放两天,过两天一起结了吧~
saucer 2003-08-24
  • 打赏
  • 举报
回复
mostly same, but ToArray() returns a copy while GetBuffer returns the underlying byte array
crackzzy 2003-08-24
  • 打赏
  • 举报
回复
谢谢思归,关于读写二进制文件的问题已经解决了。
不过我这里还有一个小疑问。
你在上面有一句
byte[] blist=ms.ToArray();
这条语句是把MemoryStream对象转换成字节数组吧。
可是我在SDK上还看到MemoryStream对象有另一个方法GetBuffer。
请问思归这个ToArray方法和GetBuffer方法有什么差别?
感觉起来好象都差不多,都是根据一个MemoryStream对象返回一个字节数组。
但是我想既然。NET提供了这两个方法一定是有原因的,还请思归帮我解释一下我今天第三个问题内的小问题,呵呵~~~(和你一样,通宵写了一夜程序~)
saucer 2003-08-24
  • 打赏
  • 举报
回复
use System.IO.FileStream

byte[] blist = ms.ToArray();
FileStream myFileStream = new FileStream( Server.MapPath("log.dat"), FileMode.OpenOrCreate, FileAccess.Write );
myFileStream.Write(blist,0,blist.Length );


but you can directly write into a file

BinaryFormatter bf = new BinaryFormatter();
bf.Serialize(myFileStream,mapinfo);

do the similar
FileStream myFileStream = new FileStream( Server.MapPath("log.dat"), FileMode.Open, FileAccess.Read );
BinaryFormatter bf = new BinaryFormatter();
object o = bf.Deserialize(myFileStream);

62,047

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧