Более короткое решение для 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);
}