StreamReader не принимает строковые аргументы?

Используя dotnet-cli (dotnet new, dotnet restore) с VScode, я создал новую программу на C#.

Однако я не могу правильно использовать StreamReader. Вот код

using System;
using System.IO;

namespace ConsoleApplication
{
    public class Program
    {
        public static void Main(string[] args)
        {
            StreamReader test = new StreamReader("Test.txt");
        }
    }
}

Я не могу запустить эту программу. Когда я бегу, используя dotnet run, он говорит, что

"Строка" не может быть преобразована в "System.IO.Stream" [netcoreapp1.0]

Я попытался создать ту же программу в сообществе Visual Studio, и она работает без ошибок

1 ответ

Решение

Чтобы решить вашу проблему: Вы должны использовать Stream в качестве основного доступа к файлу:

using(var fs = new FileStream("file.txt", FileMode.Open, FileAccess.Read))
    using (var sr = new System.IO.StreamReader(fs)){
        //Read file via sr.Read(), sr.ReadLine, ...
    }
}

поскольку StreamReader а также FileStream воплощать в жизнь IDisposable, они будут удалены из-за условий использования, поэтому вам не нужно писать вызов .Close() или же .Dispose() (Как сказал @TaW).

Другие вопросы по тегам