文件没有被完全读取

本文关键字:读取 文件 | 更新日期: 2023-09-27 18:10:33

我有一个大约113687行的文件文本,但是我的应用程序只有314行,有人能说为什么吗?

我代码:

string file = @"z:'foo.txt";
StreamReader reader = File.OpenText(file);
string line;
int rows = 0; 
while ((line = reader.ReadLine()) != null) {
  ++rows; 
   doSomethingWith(line); 
  // ...
} 

DoSomethingWith函数类似于:

protected static bool DoSomethingWith(string line)
{
    return Regex.Match(line, @"'d+'-'d+'.'d+'.'d+'.'d+").Success; 
}

更新:

回答Gregs的问题:

您的foo.txt是否在第314行包含Ctrl+Z字符?

是的,我的文件在第314行包含一个Control-Z字符。

文件没有被完全读取

Windows上的文本文件可以用Ctrl+Z字符结束。这意味着当读取文件时,当遇到Ctrl+Z时,StreamReader返回文件结束符。Ctrl+Z之后的数据将不被读取。

如果您希望在没有这种文本模式行为的情况下读取整个文件,请使用File.OpenRead代替File.OpenText