【发布时间】:2011-08-29 00:26:43
【问题描述】:
我正在尝试使用流写入器写入一些文本文件。 我要写的文本来自不同的文本文件。
我试试:
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 的,所以没有帮助)。
编辑:我试图将未复制的文本替换为已复制开头的文本。我遇到了同样的问题,所以这不是字符的问题。
【问题讨论】:
-
我也有同样的想法,源文件中可能有一些奇怪的二进制字符导致提前终止。
-
根据你有多少 RAM 肯定有一个限制,但我不知道 c# 将你的缓冲区大小限制在什么范围内。我也会把你指向这里stackoverflow.com/questions/1249475/…。
-
你怎么知道不是每一行都被复制了?您只是比较文件大小,还是使用了 diff 工具?
-
这些是文本文件。我只是用记事本++打开它们并根据我所看到的进行比较。
-
请在问题中查看我的编辑。
标签: c# stream filestream streamreader streamwriter