0

我的 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 />");
           }
       }
4

2 回答 2

2
   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 />");
       }
   }
于 2013-06-26T01:26:56.690 回答
2

Spender 介绍了为什么您的循环不起作用,我建议使用更简洁的方法File.ReadLines。这将在读取行时将它们加载到内存中,因此开销较低。

尝试:

string path = Server.MapPath(@daoWordPuzzle.GetfileURL());

foreach(string line in File.ReadLines(path))
{
    Response.Write(line + " <br />");
}
于 2013-06-26T01:28:08.987 回答