You'll have to use Read
to get each character and check for the line terminators. You'll also have to keep track if you've seen a carriage return so you'll know if you're dealing with a CRLF or just a LF when you see a line feed. And you'll have to check for a trailing CR after the loop is done.
using(StreamReader sr = new StreamReader("TestFile.txt"))
{
bool returnSeen = false;
while (sr.Peek() >= 0)
{
char c = sr.Read();
if (c == '
')
{
Console.WriteLine(returnSeen ? "CRLF" : "LF");
}
else if(returnSeen)
{
Console.WriteLine("CR");
}
returnSeen = c == '
';
}
if(returnSeen) Console.WriteLine("CR");
}
Note you can construct the lines from the characters you read and you can change this to use the overload of Read
that read into a buffer and search the result for the line terminators for better performance.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…