How to read text file by particular line separator character?

后端 未结 9 2025
独厮守ぢ
独厮守ぢ 2020-12-03 00:58

Reading a text file using streamreader.

using (StreamReader sr = new StreamReader(FileName, Encoding.Default))
{
     string line = sr.ReadLine();
}
<         


        
9条回答
  •  天涯浪人
    2020-12-03 01:41

    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 ReadLines (this TextReader reader, char delimiter)
         {
                List chars = new List ();
                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);
    }
    

提交回复
热议问题