System.IO.StreamReader.DiscardBufferedData 方法

方法描述

清除内部缓冲区。

语法定义(C# System.IO.StreamReader.DiscardBufferedData 方法 的用法)

public void DiscardBufferedData()

参数/返回值

参数值/返回值 参数类型/返回类型 参数描述/返回描述
返回值 void

提示和注释

使用 DiscardBufferedData 方法重设 StreamReader 对象的内部缓冲区。 仅当内部缓冲区的位置和 BaseStream 不匹配时,才需要调用此方法。 这些位置可以是不匹配的,当您读取缓冲区中数据,然后寻求基础流中的新位置时。 此方法会降低性能,只能在绝对有必要时使用,例如当您希望读取 StreamReader 对象的内容部分超过一次。

有关通用 I/O 任务的列表,请参见通用 I/O 任务。

System.IO.StreamReader.DiscardBufferedData 方法例子

因此,ReadToEnd 返回缓冲区中的所有字符以及自重置位置起底层流中的字符。

using System;
using System.IO;

class Test
{
    public static void Main()
    {
        string path = @"c:\temp\alphabet.txt";

        using (StreamReader sr = new StreamReader(path))
        {
            char[] c = null;

            c = new char[15];
            sr.Read(c, 0, c.Length);
            Console.WriteLine("first 15 characters:");
            Console.WriteLine(c);
            // writes - "abcdefghijklmno"

            sr.DiscardBufferedData();
            sr.BaseStream.Seek(2, SeekOrigin.Begin);
            Console.WriteLine("\nBack to offset 2 and read to end: ");
            Console.WriteLine(sr.ReadToEnd());
            // writes - "cdefghijklmnopqrstuvwxyz"
            // without DiscardBufferedData, writes - "pqrstuvwxyzcdefghijklmnopqrstuvwxyz"
        }
    }
}

异常

异常 异常描述

命名空间

namespace: System.IO

程序集: mscorlib(在 mscorlib.dll 中)

版本信息

.NET Framework 受以下版本支持:4、3.5、3.0、2.0、1.1、1.0 .NET Framework Client Profile 受以下版本支持:4、3.5 SP1 受以下版本支持:

适用平台

Windows 7, Windows Vista SP1 或更高版本, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008(不支持服务器核心), Windows Server 2008 R2(支持 SP1 或更高版本的服务器核心), Windows Server 2003 SP2 .NET Framework 并不是对每个平台的所有版本都提供支持。有关支持的版本的列表,请参见.NET Framework 系统要求。