StreamReader.ReadLine()返回为什么不一样?

方法一:

using (StreamReader srr = new StreamReader(@"D:\Users\Desktop\Mytest.txt"))//文件内容:三个字        
                                                                     //符串,每个字符串占一行
            {
                string xx = string.Empty;
                while ((xx=srr.ReadLine())!=null)
                {
                    Console.WriteLine(xx);
                } 
            }

//返回:
//ni
//chou
//sha

方法二:

          

using (StreamReader srr = new StreamReader(@"D:\Users\Desktop\Mytest.txt"))//文件内容三个字 
                                                                           //符串,每个占一行
            {
                while ( srr.ReadLine() != null)
                {
                    string str = srr.ReadLine();
                    Console.WriteLine(str);
                }
            }

//返回:
//chou
//
//        (这里还多了两个空白行)

同一个TXT文件,返回不一样,为啥呢?

第二组代码读取偶数行输出,奇数行的并没有输出,因为只是读取,没有Write。

相当于一次while就读取了2行,没有第四行,返回null,输出一个空行,最后一个空行是光标所在位置

是while语句的问题

xx=srr.ReadLine())!=null

这样做才会给xx赋值 否则不会

可以Debug看一下参数的变化。

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632