Читатель не обнаруживает конец потока. EndOfStream - PullRequest
1 голос
/ 21 апреля 2019

Я читаю строки из командной строки.Но конец потока не может быть обнаружен моей программой.Как мне восстановить это или есть способ явно установить EndOfStream в true?

List<String> str = new List<String>();

        using (StreamReader reader = new StreamReader(Console.OpenStandardInput()))

            while (!reader.EndOfStream)
            {
                string line = reader.ReadLine();

                if (line != string.Empty)
                {
                    str.Add(line);
                }
            }

1 Ответ

1 голос
/ 21 апреля 2019

Это не может сработать по замыслу. Консольные потоки stdin / stdout открываются, пока программа активна. В этом случае EndOfStream выполняется непосредственно перед закрытием приложения.

Хорошее решение для вашей проблемы.

using System;

public class Example
{
   public static void Main()
   {
      string line;
      do { 
         line = Console.ReadLine();
         if (line != null) 
            Console.WriteLine("Now I have detected the end of stream.... " + line);
      } while (line != null);   
   }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...