读取包含C#中特定字符的文件

Cha*_*Pye 0 .net c# file-io streamreader

我有一个名为的文本文件C:/test.txt:

1 2 3 4
5 6

我想用这个文件读取每个数字StreamReader.

我怎样才能做到这一点?

Luk*_*keH 5

你真的需要用a StreamReader做这个吗?

IEnumerable<int> numbers =
    Regex.Split(File.ReadAllText(@"c:\test.txt"), @"\D+").Select(int.Parse);
Run Code Online (Sandbox Code Playgroud)

(显然,如果在一次点击中读取整个文件是不切实际的,那么你需要对它进行流式处理,但是如果你能够使用File.ReadAllText那么那就是这样做的方式,在我看来.)

为了完整起见,这是一个流媒体版本:

public IEnumerable<int> GetNumbers(string fileName)
{
    using (StreamReader sr = File.OpenText(fileName))
    {
        string line;
        while ((line = sr.ReadLine()) != null)
        {
            foreach (string item in Regex.Split(line, @"\D+"))
            {
                yield return int.Parse(item);
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)