macro527 2016-12-01 11:10 采纳率: 50%
浏览 997
已采纳

菜鸟关于c#IO操作中读取的疑惑

    static void read()
    {
        file = new FileStream(@"C:\Users\Administrator\Desktop\io.txt", FileMode.Open);
        StreamReader sr = new StreamReader(file);
        while (sr.ReadLine()!=null)
        {
            Console.WriteLine(sr.ReadLine());
        }

    }

            --------------------------------------------------------------------------
 static void read()
    {
        file = new FileStream(@"C:\Users\Administrator\Desktop\io.txt", FileMode.Open);
        StreamReader sr = new StreamReader(file);
        string line;
        while ((line=sr.ReadLine())!=null)
        {
            Console.WriteLine(line);
        }

    }


            这两种代码运行结果为啥不一样
  • 写回答

2条回答 默认 最新

  • yangqinghua1992 2016-12-01 12:00
    关注

    sr 每次调用readline方法都会去读取一行文本,你看你第一个demo,循环条件里调用了一次,输出语句里又调用了一次,这样每次循环都读取两行,但只输出了一行,看出问题了没?
    第二个demo则是把读取到的一行文本先存在line变量里,判断不是null也输出这个变量,这样每次循环都只读取了一次。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥20 机器学习能否像多层线性模型一样处理嵌套数据
  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效