C#基礎學習之FileStream

來源:互聯網
上載者:User

標籤:div   位元組數組   存在   唯讀   gc記憶體回收   寫入檔案   stream   tar   基礎學習   

FileStream和File的區別  後者比前者給記憶體帶來壓力大。

FileStream可以操作位元組也就是可以儲存任何類型的檔案。

1.FileStream讀檔案操作
            //OpenOrCreate:有就開啟,沒有就建立            //FileStream 3個參數的含義: 1.path 2,針對檔案什麼操作,3針對檔案內容怎麼操作            FileStream fsRead = new FileStream(@"D:\extension_6_12.crx", FileMode.OpenOrCreate, FileAccess.Read);            byte[]buffer=new byte[1024*1024*5];//1024*1024*5 唯讀取5M,不要寫太大比如8G 那就記憶體溢出了。            //if file byte.length=3.8M             //返回本次實際讀取的有效位元組數。            int r=fsRead.Read(buffer, 0, buffer.Length);//從0讀,到最大內容長度5M.            //將位元組數組解碼成字串                        string s = Encoding.Default.GetString(buffer,0,r); //只解碼內容的部分            //關閉,GC記憶體回收處理器不會自己自動回收            fsRead.Close();            //釋放資源            fsRead.Dispose();            Console.WriteLine(s);            Console.ReadKey();

  

2.FileStream寫檔案操作
            // 使用FileStream寫入資料            using (FileStream fs=new FileStream(@"D:\\new.txt",FileMode.OpenOrCreate,FileAccess.Write))            {                string str="666666666666666666666";                byte[] buff = Encoding.UTF8.GetBytes(str);                fs.Write(buff,0,buff.Length);//如果檔案存在那麼將,一個一個字元覆蓋檔案            }            Console.WriteLine("寫入檔案");            Console.ReadKey();
3.多媒體檔案的複製

將多媒體檔案讀出來,讓後寫入到另一個檔案

 

            string source = @"c:\\zumba.mp3";            string targetSource = @"D:\\zumba.mp3";            using (FileStream fsRead=new FileStream(source,FileMode.OpenOrCreate,FileAccess.Read))              {                using (FileStream fsWrite=new FileStream(targetSource,FileMode.OpenOrCreate,FileAccess.Write))                {                    byte[] buffer = new byte[1024 * 1024 * 6]; //最多讀取6M                    //檔案比較大所以迴圈讀取                    //返回本次讀取實際取代的位元組數。                    while (true)                    {                        int r = fsRead.Read(buffer, 0, buffer.Length);                        //如果返回長度0意味著讀取完畢                        if(r==0)                        {                            break;                          }                        fsWrite.Write(buffer, 0, r);                    }                }                   }

  

C#基礎學習之FileStream

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.