1 peek/read都是读取下一个字符 2 peek/read都是返回ascii码 3 peek方法调用后指针还是指向原来的字符,但是read调用后指向下一个。 所以以下方法,如果用peek是死循环,用read则正常 string text = "hello hello"; TextReader tr = new StringReader(text); while (tr.Peek() != -1) Console.WriteLine(tr.Read()); //正常工作 //Console.WriteLine(tr.Peek()); //死循环