|
本帖最后由 zhu 于 2016-7-28 16:44 编辑
当按行读取字节流时,一般都会使用以下方式读取
- stream = response.GetResponseStream();
- reader = new StreamReader(stream, ConfigHelper.MyEncoding);
- while (reader.Peek() > -1)
- {
- string x = reader.ReadLine();
- if (x != null)
- {
- //.......
- }
- }
复制代码 但是peek()方法有时候会未读到末尾就意外返回-1了。建议使用以下方法代替:
- while (stream.CanRead && (x = reader.ReadLine()) != null)
复制代码 关于Peek方法的说明,MSDN的解释如下:
返回值System.Int32
为表示下一个要读取的字符的整数,或者,如果没有要读取的字符或该流不支持查找,则为 -1
备注
Peek 方法返回一个整数值,以便确定是否发生了该文件或另一个错误的末尾。这样就允许用户以首先检查返回的值是否为-1 之前它强制转换为类型。
|
|