如何在C#中替换大文本文件中的换行符

时间:2013-12-13 17:06:40

标签: c# text replace newline

如何在大文本(* .csv)文件(~2 GB)中替换部分 NewLine字符?

我无法使用File.ReadAllText读取整个文件,因为获取OutOfMemory错误而我无法使用StreamReader,因为它会删除所有NewLine字符。

以下是一些示例文本:

Row1Field1;Row1Field2;Row1Field3(NewLine)
Row2Field1;Row2Fie(NewLine)  *<--- This newline is by mistake and I want to replace it!*
ld2;Row2Field3(NewLine)
Row3Field1;Row3Field2;Row3Field3(NewLine)

1 个答案:

答案 0 :(得分:5)

你应该使用StreamReader(即使你说你不能)并逐行读取文件。当你找到一个错误的新行时,只需将该行保留在内存中并与接下来的那行连接(如果一次出现多个错误行,可能会更多)并在输出流中写回。 如果ReadLine删除行结尾并不重要。只需使用WriteLine在输出流中写入,您就可以再次使用换行符。