C# 读取大文件 (可以读取3GB大小的txt文件)

原文: C# 读取大文件 (可以读取3GB大小的txt文件)

在处理大数据时,有可能 会碰到 超过3GB大小的文件,如果通过 记事本 或 NotePad++去打开它,会报错,读不到任何文件。

如果你只是希望读取这文件中的前几行,怎么办,下面的工具会帮您解决这个问题. 而且读取时间很快。

截图:


工具下载地址: http://pan.baidu.com/s/1y34wt      (15KB左右, 备注:要运行这个工具,需要您的机器已装过 .netFramework4.0 )

源代码下载地址:http://pan.baidu.com/s/1jAyjl        (70KB左右)



源代码样例:

1,读取一般文件的代码

public static string ReaderFile(string path)
        {
            string fileData = string.Empty;
            try
            {   ///读取文件的内容    
                StreamReader reader = new StreamReader(path, Encoding.Default);
                fileData = reader.ReadToEnd();
                reader.Close();
            }
            catch (Exception ex)
            {
                // throw new Exception(ex.Message,ex);  
            }  ///抛出异常    
            return fileData;
        }


2, 读取 大文件(大到约4个GB的文本文件)

private bool ReadBigFile()
        {
            string sTmpFile=@"c:\tmpTest.txt";
            if (File.Exists(sTmpFile))
            {
                File.Delete(sTmpFile);
            }

            if (!System.IO.File.Exists(sTmpFile))
            {
                FileStream fs;
                fs = File.Create(sTmpFile);
                fs.Close();
            }

            if (!File.Exists(txtFileName.Text.Trim()))
            {
                lblResult.Text = "File not exist!";
                txtFileName.Focus();
                return false;
            }

            FileStream streamInput = System.IO.File.OpenRead(@txtFileName.Text.Trim());
            FileStream streamOutput = System.IO.File.OpenWrite(sTmpFile);

            int iRowCount = 10;
            int.TryParse(txtRowCount.Text.Trim(), out iRowCount);

            try
            {
                for (int i = 1; i <= iRowCount; )
                {
                    int result = streamInput.ReadByte();
                    if (result == 13)
                    {
                        i++;
                    }
                    if (result == -1)
                    {
                        break;
                    }
                    streamOutput.WriteByte((byte)result);
                }
            }
            finally
            {
                streamInput.Dispose();
                streamOutput.Dispose();
            }

            string sContent = ReaderFile(sTmpFile);
            CopyToClipboard(sContent);

            return true;
        }

        public static string ReaderFile(string path)
        {
            string fileData = string.Empty;
            try
            {   ///读取文件的内容    
                StreamReader reader = new StreamReader(path, Encoding.Default);
                fileData = reader.ReadToEnd();
                reader.Close();
            }
            catch (Exception ex)
            {
                // throw new Exception(ex.Message,ex);  
            }  ///抛出异常    
            return fileData;
        }

        private void CopyToClipboard(string sSource)
        {
            Clipboard.Clear();
            if (!string.IsNullOrEmpty(sSource))
            {
                Clipboard.SetText(sSource);
            }
        }


优秀的个人博客,低调大师

微信关注我们

原文链接:https://yq.aliyun.com/articles/678583

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

相关文章

发表评论

资源下载

更多资源
优质分享Android(本站安卓app)

优质分享Android(本站安卓app)

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的、适应高吞吐量的数据库方案。

Eclipse(集成开发环境)

Eclipse(集成开发环境)

Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。

Sublime Text 一个代码编辑器

Sublime Text 一个代码编辑器

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。