【发布时间】:2010-10-19 08:13:00
【问题描述】:
我对逐渐将文件读入缓冲区的步骤有些困惑。
来自 MSDN 文档
public abstract int Read(
byte[] buffer,
int offset,
int count
)
FileStream fileStream = new FileStream(filePath, FileMode.Open, FileAccess.Read);
try
{
int length = (int)fileStream.Length; // get file length
buffer = new byte[length]; // create buffer
int count; // actual number of bytes read
int sum = 0; // total number of bytes read
// read until Read method returns 0 (end of the stream has been reached)
while ((count = fileStream.Read(buffer, sum, length - sum)) > 0)
sum += count; // sum is a buffer offset for next reading
我可以说 fileStream.Read(buffer, sum, length - sum) 行读作“将fileStream 从sum(偏移)到length - sum(要读取的总字节数)读入buffer ”。好的,所以在开始时,当sum = 0 时,我会在 1 内有效地将整个 fileStream 读入缓冲区,但我认为情况并非如此。也许Read() 将任何可能的内容读入缓冲区?然后返回以便您可以再次Read() 吗?我有点困惑。
【问题讨论】:
标签: c# io filestream