在C#中使用流编写器/阅读器可以写入/读取的文本数量是否有限制?

时间:2011-08-29 00:26:43

标签: c# stream filestream streamreader streamwriter

我正在尝试使用流编写器写入某个文本文件。 我试写的文字是来自不同的文本文件。

我试试:

string line = reader.ReadLine(); //reader is a streamReader I defined before
while (line != null)
{
    sw.WriteLine(line); //sw is a streamWriter I defined before
    line = reader.ReadLine();
}

我也尝试过:

while (!(reader.EndOfStream))
{
    sw.WriteLine(reader.ReadLine()); //sw is a streamWriter I defined before
}

这两个方法成功地将文本从文件复制到另一个文件,但由于某些原因,并非所有文本都被复制。 我试图复制的文本文件非常大,大约96000行,并且只复制了~95000个第一行。

因此,我问我在C#中使用流编写器/阅读器可以写入/读取的文本数量是否有限制?

另外,我要求提供一些关于如何成功复制所有文本的建议。 (我读到有一个Stream类的方法副本,但这适用于.NET4,所以它不会帮助。)

编辑:我尝试将文本中未复制的文本替换为复制的开头。我遇到了同样的问题,所以对于角色来说这不是问题。

2 个答案:

答案 0 :(得分:3)

嗯。可能你没有冲洗你的流。尝试做sw.Autoflush = true;或者,在关闭sw之前,请调用sw.Flush();

答案 1 :(得分:0)

我猜你没有在输出流上调用flush。这将导致最后几行(有时很多)不能写入输出文件。