C#StreamReader,用换行符区分新行和新行

我正在处理一个较大的文本文件(6.5GB),并且正在使用StreamReader读取它。

该文件的某些部分使用CRLF分隔,但是有时仅使用LF。

是否有一种简单的方法来确定读入的行仅仅是换行符'\ n'还是换行符'\ r \ n'的回车符。 StreamReader.ReadLine()似乎将它们视为空值或空值。

rpoke 回答:C#StreamReader,用换行符区分新行和新行

您只需将crlf和lf替换为cr。

using (var reader = new StreamReader(@"yourfile"))
using (var writer = new StreamWriter(@"outfile")) // or any other TextWriter
{
    while (!reader.EndOfStream) {
        string currentLine = reader.ReadLine();
        string newLine = currentLine.Replace('\r\n','\n');
        newLine = newLine.Replace('\r','\n');
        newLine = newLine.Replace('\n','\r\n');
        writer.Write(newLine);
    }
}
本文链接:https://www.f2er.com/3123480.html

大家都在问