【发布时间】:2014-01-02 17:42:57
【问题描述】:
我有一个脑死亡的时刻,现在茫然地盯着这小段代码 10 分钟...有人可以告诉我为什么输出文件 (test2.txt) 包含比它正在阅读的文件更多的文本来自 (test.txt) ??
代码如下:
FileStream inputStream = new FileStream(@"C:\Temp\test.txt", FileMode.Open);
FileStream outputStream = new FileStream(@"C:\Temp\test2.txt", FileMode.OpenOrCreate);
byte[] buffer = new byte[1024];
Console.WriteLine(new FileInfo(@"C:\Temp\test.txt").Length + "\n");
while (inputStream.Read(buffer, 0, buffer.Length) > 0)
{
Console.WriteLine("bufferlength " + buffer.Where(x => x != 0).ToArray().Length);
Console.WriteLine(new FileInfo(@"C:\Temp\test2.txt").Length);
outputStream.Write(buffer, 0, buffer.Length);
outputStream.Flush();
Console.ReadKey();
}
Console.WriteLine("\n" + inputStream.Length);
Console.WriteLine(outputStream.Length);
Console.Read();
谢谢大家
【问题讨论】:
-
Rohit Vats 有您可以使用的答案。请记住,当这是一个大文件时,不断写入
Console可能会花费很长时间。此外,我会增加缓冲区大小以减少因开销造成的损失。
标签: c# .net stream filestream