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).