StreamReader.Read
和 StreamReader.ReadBlock
都是 C# 中 System.IO.StreamReader
类的方法,用于从流中读取字符。这两个方法的主要区别在于它们的读取方式和返回值。
以下是两者使用的示例:
using System;
using System.IO;
class Program
{
static void Main()
{
using (StreamReader sr = new StreamReader("example.txt"))
{
// 使用 StreamReader.Read 逐个字符读取
int charCode;
while ((charCode = sr.Read()) != -1)
{
Console.Write((char)charCode);
}
// 将读取位置重置到文件开头
sr.BaseStream.Seek(0, SeekOrigin.Begin);
// 使用 StreamReader.ReadBlock 读取指定数量的字符
char[] buffer = new char[1024];
int charsRead;
while ((charsRead = sr.ReadBlock(buffer, 0, buffer.Length)) > 0)
{
Console.Write(buffer, 0, charsRead);
}
}
}
}
总之,StreamReader.Read
更适合逐个字符处理,而 StreamReader.ReadBlock
更适合高效地读取大量字符。注意,在使用 ReadBlock
时,确保缓冲区大小合适,以避免不必要的内存分配。
领取专属 10元无门槛券
手把手带您无忧上云