如果不使用或使用dispose,StreamWriter在哪里存储数据流?

时间:2015-09-22 03:42:26

标签: c# .net asp.net-mvc stream writer

我在代码中使用了StreamWriter而没有使用或配置来创建csv文件。它起初工作正常但它总是生成第一次运行我的代码时生成的相同文件。即使我更改了数据选择,它也是同一个文件。然后我在不同的环境中复制了我的dll,只有dll没有其他文件被更改,它仍然生成相同的文件,具有与以前环境完全相同的数据。似乎我的代码是从第一次运行缓冲数据,但在哪里?通过改变托管环境,为什么它的缓冲区没有改变?

1 个答案:

答案 0 :(得分:0)

创建StreamWriter时,它会接受Stream来写入或创建自己的StreamDispose实例使用缓冲来保存正在写入并需要刷新的数据。这是在您Stream StreamWriterFlush时完成的,但如果您让垃圾收集器最终确定,则可能会跳过此步骤。

这就是为什么总是在您完成这些内容后处理您的视频流的原因,以及为什么 应该Stream Dispose 1}}当你完成了向你写的数据时,你不想丢失。您的代码中未绕过Stream的未处理异常会导致您丢失数据。

我个人更喜欢尽快处理 char findNextBiggestValue = '4'; char[] array = {'3', '6', '7', '8', '9'}; // No elemnt? Do nothing if (array.Length < 1) { return; } // Init it a large value char minValue = 'z'; // Look for the next bigger value foreach (var c in array) { if (findNextBiggestValue < c && c < minValue) { minValue = c; } } Console.WriteLine(minValue); 。除非你每秒不断写几百次,否则重新打开文件以便以后再添加一些数据并不会花费太多。