Более короткое решение для StreamReader в.net core

У меня есть этот основной код для чтения файла с StreamReader с ядром Dotnet в VS Code. Я могу сделать аналогичную операцию в Visual Studios с.net new StreamReader("file.json") который выглядит маленьким и компактным.

Я ищу другой класс в ядре dotnet, который мог бы достичь аналогичных результатов с меньшим количеством кода

 using System;
 using System.IO;

namespace ConsoleApplication
{
    public class Program
    {
        public static void Main(string[] args)
        {
            StreamReader myReader = new StreamReader(new FileStream("project.json", FileMode.Open, FileAccess.Read)); 
            string line = " "; 

            while(line != null)
            {
                line = myReader.ReadLine(); 
                if(line != null)
                {
                    Console.WriteLine(line); 
                }
            }

            myReader.Dispose();
        }
    }
}

2 ответа

Решение

В полной структуре метод close избыточен с помощью Dispose. Рекомендуемый способ закрыть поток - вызвать оператор Dispose через using, чтобы обеспечить закрытие потока, даже если произойдет ошибка.

Вы можете использовать System.IO.File.OpenText() для непосредственного создания StreamReader.

Вот что вам нужно, чтобы открыть и закрыть StreamReader:

using (var myReader = File.OpenText("project.json"))
{
    // do some stuff
}

Класс File находится в пакете nuget System.IO.FileSystem

Подобные результаты с меньшим количеством кода? Удалите ненужный код... Это не сработает???

try {
  using (StreamReader myReader = File.OpenText("project.json")) {
    string line = "";
    while ((line = myReader.ReadLine()) != null) {
      Console.WriteLine(line);
    }
  }
}
catch (Exception e) {
  MessageBox.Show("FileRead Error: " + e.Message);
}
Другие вопросы по тегам