StreamReader不接受字符串参数?

时间:2016-09-14 06:49:29

标签: c# visual-studio-code dotnet-cli visual-studio-community

使用带有VScode的dotnet-cli(dotnet new,dotnet restore),我制作了一个新的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,它说

  

'string'无法转换为'System.IO.Stream'[netcoreapp1.0]

我尝试在Visual Studio社区中创建相同的程序,并且运行正常,没有任何错误

1 个答案:

答案 0 :(得分: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, ...
    }
}

由于StreamReaderFileStream实施IDisposable,因为使用了子句,它们将被处理掉,因此您无需编写电话.Close()或{{ 1}}(正如@TaW所说)。