1. 程式人生 > >FileStream 類讀寫操作

FileStream 類讀寫操作

返回值 pos nco lin 字節數組 adk buffer spa txt

1.讀取

    static void Main(string[] args)
        {
            /*
             * File類最大的問題是,一次性讀取,如果文件較大的話,會給內存造成很大壓力。
             * 文件流:把一個較大的文件,可以分成一點一點的讀取和寫入,內存壓力很小。
             * 三種文件流類:FileStream:操作字節(byte),可讀可寫,可以操作任何文件。
             *             StreamReader+StreamWriter:操作字符,操作文本文件。
             
*/ //1、創建文件流對象 string path=@"D:\CSharp_Net\課件\相約未知地帶.txt"; FileStream fsRead = new FileStream(path, FileMode.OpenOrCreate, FileAccess.Read); //2、創建一個讀取緩沖區,可以保存3MB的數據 byte[] buffer=new byte[1024*1024*3]; //3、讀取數據,返回值表示的是每次讀取到的實際字節數 int
r = fsRead.Read(buffer, 0, buffer.Length); //4、把讀取到的字節型數據,解析成字符串 string s = Encoding.Default.GetString(buffer,0,r); //5、GC有一些資源是無法去回收的,FileStream就是其中的一種 //所以,需要手動將FileStream對象所占的資源釋放掉 fsRead.Close();//關閉對象 fsRead.Dispose();//釋放資源 Console.WriteLine(s); Console.ReadKey(); }

2.寫入

        static void Main(string[] args)
        {
            string path = @"D:\CSharp_Net\課件\Test.txt";
            //將實現了IDisposable接口的類的對象放進using裏面,
            //結束using過程後,會自動調用Dispose方法來釋放對象所占的資源

            //創建寫入對象
            using(FileStream fsWrite=new FileStream(path,FileMode.OpenOrCreate,FileAccess.Write))
            {
                //寫入的內容
                string s="譚科,我好想你啊。";

                //將要寫入的內容解析成字節數組
                byte[] buffer = Encoding.Default.GetBytes(s);
                
                //將字節數組內容寫入文件
                fsWrite.Write(buffer, 0, buffer.Length);
            }
            Console.WriteLine("寫入成功");
            Console.ReadKey();
        }
    }

FileStream 類讀寫操作