在程序处理的过程中,我们通常读取的文件大小比较小,这样很好处理,
但是如果遇见类似于5G这样的文件,使用常用的读取文件的方法显得就不行了.
这个时候需要将文件进行拆分进行读取.下面是示例代码.
private void BigFileRead(string strFilePath)
{
//每次读取的字节数
int iBufferSize = 1024000;
byte[] buffer = new byte[iBufferSize];
FileStream fs = null;
try
{
fs = new FileStream(strFilePath, FileMode.Open);
//文件流的长度
long lFileSize = fs.Length;
//文件需要读取次数
int iTotalCount = (int)Math.Ceiling((double)(lFileSize / iBufferSize));
//当前读取次数
int iTempCount = 0;
while (iTempCount < iTotalCount)
{
//每次从最后读到的位置读取下一个[iBufferSize]的字节数
fs.Read(buffer, 0, iBufferSize);
//将字节转换成字符
string strRead = Encoding.Default.GetString(buffer);
//此处加入你的处理逻辑
Console.Write(strRead);
}
}
catch (Exception ex)
{
//异常处理
}
finally
{
if (fs != null)
{
fs.Dispose();
}
}
}