C# 读取大文件至内存

long offest = 0;
            byte[] buffer = null;
            try
            {
                using (FileStream fs = new FileStream(fileFullPath, FileMode.Open))
                {
                    buffer = new byte[1024 * 1024];
                    while ((offest + 1024 * 1024) <= fs.Length)
                    {
                        fs.Read(buffer, 0, buffer.Length);
                        offest += 1024 * 1024;
                        fs.Seek(offest, SeekOrigin.Begin);
                    }

                    

                    if ((fs.Length - offest) < 1024 * 1024)
                    {
                        fs.Read(buffer, 0, Convert.ToInt32(fs.Length - offest));
                        MessageBox.Show("Done");
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }

因为计算机的内存空间是有限的,如果一次性把大数据文件加载至内存,会造成内存极速被消耗。此举不适合一般情况的读取大数据文件。

C#提供了FileStream类来操作文件流,可以和Seek()函数一起循环读取文件中特定长度的数据(比如1M),这样不会造成内存浪费,也符合软件开发的基本逻辑。

下载源代码

         

你可能感兴趣的:(软件,C#)