C# FileStream循環讀取大文件數據

今天學習了FileStream的用法,用來讀取文件流,教程上都是讀取小文件,一次性讀取,但是如果遇到大文件,那麼我們就需要循環讀取文件。

直接上代碼。

引用命名空間

using System.IO;

下面就是循環讀取大文件的代碼

class Program
    {
        static void Main(string[] args)
        {
           
            //循環讀取大文本文件
            FileStream fsRead;
            //獲取文件路徑
            string filePath="C:\\Users\\國興\\Desktop\\1號店賬號.txt";
            //用FileStream文件流打開文件
            try 
	        {	        
		        fsRead = new FileStream(@filePath,FileMode.Open);
	        }
	        catch (Exception)
	        {
		
		        throw;
	        }

            //還沒有讀取的文件內容長度
            long leftLength = fsRead.Length;
            //創建接收文件內容的字節數組
            byte[] buffer = new byte[1024];
            //每次讀取的最大字節數
            int maxLength=buffer.Length;
            //每次實際返回的字節數長度
            int num=0;
            //文件開始讀取的位置
            int fileStart=0;

            while (leftLength>0)
	        {
                //設置文件流的讀取位置
                fsRead.Position=fileStart;
                if (leftLength<maxLength)
	            {
		            num=fsRead.Read(buffer,0,Convert.ToInt32(leftLength));
	            }
                else{
                    num=fsRead.Read(buffer,0,maxLength);
                }
                if (num==0)
                {
                    break;
                }
	            fileStart += num;
                leftLength -= num;
                Console.WriteLine(Encoding.Default.GetString(buffer));
	        }
            Console.WriteLine("end of line");
            
            fsRead.Close();
            Console.ReadKey();
        }
    }



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章