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


//1,读取一般文件的代码

[csharp] view plain copy
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的文本文件)
[csharp] view plain copy
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);  
            }  
        }  

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM