簡體   English   中英

C#StreamReader從文本文件讀取缺少第一行

[英]C# StreamReader reading from textfile missing the first line

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM