C#StreamReader读取缺少第一行的文本文件

C#StreamReader读取缺少第一行的文本文件,c#,text-files,streamreader,C#,Text Files,Streamreader,我的streamReader正在从特定位置读取我的文本文件,但它只读取9行而不是10行,文本文件由10行组成,这里出了什么问题?它省略了第一行,只显示其余的9行 这是我的密码: using (StreamReader reader = File.OpenText(Server.MapPath(@daoWordPuzzle.GetfileURL()))) { foreach (var line in reader.ReadLine())

我的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 />");
           }
       }
使用(StreamReader reader=File.OpenText(Server.MapPath(@daowwordpuzzle.GetfileURL()))
{
foreach(reader.ReadLine()中的变量行)
{
Response.Write(reader.ReadLine()+“
”); } }
使用(StreamReader=
File.OpenText(Server.MapPath(@daowrdpuzzle.GetfileURL()))
{
//reader.ReadLine返回一个字符串
//在这里,您将迭代文件的第一行
//这意味着行是一个字符
foreach(reader.ReadLine()中的变量行)
{
Response.Write(reader.ReadLine()+“
”); } }
你应该做的是:

   using (StreamReader reader = 
      File.OpenText(Server.MapPath(@daoWordPuzzle.GetfileURL())))
   {
       string line;
       while((line = reader.ReadLine()) != null)
       {
           Response.Write(line + " <br />");
       }
   }
使用(StreamReader=
File.OpenText(Server.MapPath(@daowrdpuzzle.GetfileURL()))
{
弦线;
而((line=reader.ReadLine())!=null)
{
响应。写入(行+“
”); } }
使用(StreamReader=
File.OpenText(Server.MapPath(@daowrdpuzzle.GetfileURL()))
{
//reader.ReadLine返回一个字符串
//在这里,您将迭代文件的第一行
//这意味着行是一个字符
foreach(reader.ReadLine()中的变量行)
{
Response.Write(reader.ReadLine()+“
”); } }
你应该做的是:

   using (StreamReader reader = 
      File.OpenText(Server.MapPath(@daoWordPuzzle.GetfileURL())))
   {
       string line;
       while((line = reader.ReadLine()) != null)
       {
           Response.Write(line + " <br />");
       }
   }
使用(StreamReader=
File.OpenText(Server.MapPath(@daowrdpuzzle.GetfileURL()))
{
弦线;
而((line=reader.ReadLine())!=null)
{
响应。写入(行+“
”); } }
Spender介绍了循环不起作用的原因,我建议使用更干净的方法。这将在读取线路时将其加载到内存中,因此具有较低的开销

尝试:

string path=Server.MapPath(@daowrdpuzzle.GetfileURL());
foreach(File.ReadLines(路径)中的字符串行)
{
响应。写入(行+“
”); }
Spender介绍了循环不起作用的原因,我建议使用更干净的方法。这将在读取线路时将其加载到内存中,因此具有较低的开销

尝试:

string path=Server.MapPath(@daowrdpuzzle.GetfileURL());
foreach(File.ReadLines(路径)中的字符串行)
{
响应。写入(行+“
”); }
您可能想解释一下为什么这样做有效,为什么OP不起作用。与@Spender's相比,我更喜欢这个解决方案,因为它更干净-没有凌乱的while循环和变量赋值。@m.t.bennett我参考了Spender的解决方案,因为我认为它不需要重复。你可能想解释一下为什么它有效,为什么OP不起作用。我比@Spender的解决方案更喜欢这个解决方案,因为它更干净-没有混乱的while循环和变量赋值。@m.t.bennett我参考了Spender的解决方案,因为我认为它不需要重复。
string path = Server.MapPath(@daoWordPuzzle.GetfileURL());

foreach(string line in File.ReadLines(path))
{
    Response.Write(line + " <br />");
}