while (sr.Peek() >= 0)  请帮我解释一下这了的peek方法

解决方案 »

  1.   

    sr.Peek()表示调用sr的 Peek方法,而且该方法会返回一个int类型的值。如果sr.Peek()的返回值>=0,也就是说满足循环条件,就执行while循环中的代码逻辑。
      

  2.   

    这个都解释下吧
    try
                {
                    StreamReader sr = new StreamReader(path, Encoding.GetEncoding("gb2312"));//Encoding.GetEncoding("gb2312")是编码形式
                    //Peek()方法
                    // 返回结果:
                    // 表示下一个要读取的字符的整数,或者,如果没有要读取的字符或该流不支持查找,则为 -1。
                    while (sr.Peek() >= 0)
                    {
                         str += sr.ReadLine() + "\r\n";
                     }
                     sr.Close();
                }
                catch (Exception e)
                {
                    str = e.ToString();
                }