C#StreamReader从文本文件读取缺少第一行
本文关键字:一行 文本 文件 读取 C#StreamReader | 更新日期: 2023-09-27 18:19:58
我的streamReader正在从特定位置读取我的文本文件,但它只读取9行而不是10行,文本文件由10行组成,这里出了什么问题?它省略了第一行,只显示其余9行。
这是我的代码:
using (StreamReader reader = File.OpenText(Server.MapPath(@daoWordPuzzle.GetfileURL())))
{
foreach (var line in reader.ReadLine())
{
Response.Write(reader.ReadLine() + " <br />");
}
}
using (StreamReader reader =
File.OpenText(Server.MapPath(@daoWordPuzzle.GetfileURL())))
{
//reader.ReadLine returns a string
//so here you are iterating the first line of the file
//this means line is a char
foreach (var line in reader.ReadLine())
{
Response.Write(reader.ReadLine() + " <br />");
}
}
你应该做的是:
using (StreamReader reader =
File.OpenText(Server.MapPath(@daoWordPuzzle.GetfileURL())))
{
string line;
while((line = reader.ReadLine()) != null)
{
Response.Write(line + " <br />");
}
}
Spender介绍了循环不工作的原因,我建议使用更干净的方法File.ReadLines
。这将在读取线路时将线路加载到内存中,因此开销较低。
尝试:
string path = Server.MapPath(@daoWordPuzzle.GetfileURL());
foreach(string line in File.ReadLines(path))
{
Response.Write(line + " <br />");
}