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条)

报告相同问题?

悬赏问题

  • ¥50 如何增强飞上天的树莓派的热点信号强度,以使得笔记本可以在地面实现远程桌面连接
  • ¥15 MCNP里如何定义多个源?
  • ¥20 双层网络上信息-疾病传播
  • ¥50 paddlepaddle pinn
  • ¥20 idea运行测试代码报错问题
  • ¥15 网络监控:网络故障告警通知
  • ¥15 django项目运行报编码错误
  • ¥15 请问这个是什么意思?
  • ¥15 STM32驱动继电器
  • ¥15 Windows server update services