在程序处理的过程中,我们通常读取的文件大小比较小,这样很好处理,
但是如果遇见类似于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();
- }
- }
- }