文件没有被完全读取
本文关键字:读取 文件 | 更新日期: 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
。