File.OpenRead的缓冲区大小

时间:2013-09-06 12:02:56

标签: c# .net io

如果使用FileStream构造函数之一,则可以指定缓冲区大小(以字节为单位),但如果使用File.OpenRead则不能。在第二个案例中使用的缓冲区大小的默认值是什么?

2 个答案:

答案 0 :(得分:4)

从这个构造函数中可以看出它是4096

[SecuritySafeCritical]
public FileStream(string path, FileMode mode, FileAccess access, FileShare share)
    : this(path, mode, access, share, 4096,
           FileOptions.None, Path.GetFileName(path), false)
{
}

这是OpenRead调用的构造函数:

public static FileStream OpenRead(string path)
{
    return new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.Read);
}

答案 1 :(得分:4)

使用Telerik JustDecompile查看代码,它是4096 B:

public static FileStream OpenRead(string path)
{
    return new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.Read);
}

public FileStream(string path, FileMode mode, FileAccess access, FileShare share) : this(path, mode, access, share, 4096, FileOptions.None, Path.GetFileName(path), false)
{
}