当前位置:编程学习 > C#/ASP.NET >>

C# 中的内存流(MemoryStream)使用问题

先贴上问题代码:

MemoryStream memory = new MemoryStream();
StreamWriter writer = new StreamWriter(memory);
FileStream file = new FileStream(@"D:\Temp\test.txt", FileMode.CreateNew);

writer.Write("测试计划");
writer.WriteLine(",完毕!");

memory.WriteTo(file);

file.Dispose();
writer.Dispose();
memory.Dispose();

使用中发现,通过 StreamWriter 写入的数据并没有按愿想的那样写入到文件中,搞了半天还是不明白是怎么回事。在此求救了! C# MemoryStream 内存流 --------------------编程问答-------------------- FileStream file = new FileStream(@"D:\Temp\test.txt", FileMode.CreateNew, FileAccess.Write);

试试呢 --------------------编程问答-------------------- 你没有调用Flush --------------------编程问答-------------------- 你看下官方的代码是怎么写的。http://msdn.microsoft.com/zh-cn/library/system.io.streamwriter.aspx --------------------编程问答-------------------- 试过了的啊,那个文件里面一点内容也没有。
我怀疑的是 StreamWriter 的构造函数使用的这个 Stream 参数,我通过 StreamWriter 写的数据如果是指定了文件路径的文件流,那么它就写到文件了,而我现在给它的是一个内存流,那么,数据到底存储到哪里去了,放哪里?。
MemoryStream 的使用是不是和我们的想法不太一致?
比如说我们想向它写入数据的时候,是不是要让它自己读。而想从它读的时候反而要它自己写?? --------------------编程问答-------------------- file.close(); --------------------编程问答--------------------
引用 3 楼 guwei4037 的回复:
你看下官方的代码是怎么写的。http://msdn.microsoft.com/zh-cn/library/system.io.streamwriter.aspx

看看我的回复,是不是内存流的操作上的问题?? --------------------编程问答--------------------
引用 2 楼 clark523 的回复:
你没有调用Flush

用了还是一样的。writer 写完了 memory.Length 依旧是零。 --------------------编程问答-------------------- writer.Flush();
memory.Pos=0
memory.WriteTo(File);
memory.Flush();
--------------------编程问答--------------------
引用 8 楼 clark523 的回复:
writer.Flush();
memory.Pos=0
memory.WriteTo(File);
memory.Flush();

Thanks!
看来是我想多了。原来是 writer 没有立即写入的问题。
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,