seehttp://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfSystemIOStreamReaderClassDiscardBufferedDataTopic.asp

解决方案 »

  1.   

    因为StreamReader读取方法不更新基础流的当前位置,所以一些类实例返回的字符会多于流中实际的字符数。解决此问题的一个办法是使用 DiscardBufferedData,它使 StreamReader 放弃其内部缓冲区的内容。
    使用 DiscardBufferedData 搜索到基础流中的一个已知位置并从这一新点开始读取,或者多次读取 StreamReader 的内容。因为此方法可导致性能下降,所以要少用,而且仅在特定情形下需要时才使用它。