Reading a text file using streamreader.
using (StreamReader sr = new StreamReader(FileName, Encoding.Default)) { string line = sr.ReadLine(); }
I want to force that line delimiter should be \n
not \r
. So how can i do that?
I would implement something like George's answer, but as an extension method that avoids loading the whole file at once (not tested, but something like this):
static class ExtensionsForTextReader { public static IEnumerable<string> ReadLines (this TextReader reader, char delimiter) { List<char> chars = new List<char> (); while (reader.Peek() >= 0) { char c = (char)reader.Read (); if (c == delimiter) { yield return new String(chars.ToArray()); chars.Clear (); continue; } chars.Add(c); } } }
Which could then be used like:
using (StreamReader sr = new StreamReader(FileName, Encoding.Default)) { foreach (var line in sr.ReadLines ('\n')) Console.WriteLine (line); }
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With