我正在测试FileStream和StreamReader类如何工作。通过控制台应用程序。
我试图进入一个文件并阅读这些行,然后在控制台上打印它们。

我已经可以使用while循环来做到这一点,但是我想通过foreach循环来尝试一下。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;

namespace testing
{
    public class Program
    {
        public static void Main(string[] args)
        {
            string file = @"C:\Temp\New Folder\New Text Document.txt";
            using(FileStream fs = new FileStream(file, FileMode.Open, FileAccess.Read))
            {
                using(StreamReader sr = new StreamReader(fs))
                {
                    foreach(string line in file)
                    {
                        Console.WriteLine(line);
                    }
                }
            }
        }
    }
}

我一直为此得到的错误是:无法将类型'char'转换为'string'

起作用的while循环如下所示:
while((line = sr.ReadLine()) != null)
{
    Console.WriteLine(line);
}

我可能忽略了一些基本的内容,但看不到。

最佳答案

要读取New Text Document.txt中的所有行,请执行以下操作:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;

namespace testing
{
    public class Program
    {
        public static void Main(string[] args)
        {
            string file = @"C:\Temp\New Folder\New Text Document.txt";
            using(FileStream fs = new FileStream(file, FileMode.Open, FileAccess.Read))
            {
                using(StreamReader sr = new StreamReader(fs))
                {
                    while(!sr.EndOfStream)
                    {
                       Console.WriteLine(sr.ReadLine());
                    }
                }
            }
        }
    }
}

关于c# - C#中的FileStream StreamReader问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/286533/

10-12 06:30