C# 中File和FileStream的用法


原文:https://blog.csdn.net/qq_41209575/article/details/89178020

1.首先先介紹File類和FileStream文件流
1.1  File類,是一個靜態類,支持對文件的基本操作,包括創建,拷貝,移動,刪除和打開一個文件。File類方法的參量很多時候都是路徑path。主要提供有關文件的各種操作,在使用時需要引用System.IO命名空間。
 1.2  FileStream文件流 只能處理原始字節(raw byte)。FileStream 類可以用於任何數據文件,而不僅僅是文本文件。FileStream 對象可以用於讀取諸如圖像和聲音的文件,FileStream讀取出來的是字節數組,然后通過編碼轉換將字節數組轉換成字符串。
1.3 區別:file:是一個文件的類,對文件進行操作的;filestream:文件流.對txt,xml等文件寫入內容的時候需要使用的一個工具.打個形象的比喻.file是筆記本,需要filestream的這個筆才能寫.
2.代碼部分
File類常用方法
 

 

3.文件流

3.1文件流文字形式讀取

 byte[] bytsize = new byte[1024 * 1024 * 5];
            using (FileStream stream = new FileStream(path, FileMode.OpenOrCreate,FileAccess.ReadWrite))
            {
                while (true)
                {
                    int r = stream.Read(bytsize, 0, bytsize.Length);
                    //如果讀取到的字節數為0,說明已到達文件結尾,則退出while循
                    if (r == 0)
                    {
                        break;
                    }
                    string str = Encoding.Default.GetString(bytsize, 0, r);
                    Console.WriteLine(str);
                }
            }

3.2文件流文字形式寫入

 string str = "今天天氣好晴朗,處處好風光";
            byte[] buttf = Encoding.Default.GetBytes(str);
            //文件流的寫入
            using (FileStream fscreat = new FileStream(path, FileMode.Append, FileAccess.Write))
            {
                fscreat.Write(buttf, 0, buttf.Length);
            }

 

3.3文件流視頻形式復制

 byte[] bytsize = new byte[1024 * 1024 * 5];       
string videoPath = @"C:\Users\Administrator\Desktop\1、練習1-3.avi";
            string videoNewPath = @"C:\Users\Administrator\Desktop\1.avi";
            //創建讀取流
            using (FileStream fsread=new FileStream(videoPath,FileMode.Open,FileAccess.Read))
            {
                //創建寫入流
                using (FileStream fswrite=new FileStream(videoNewPath,FileMode.OpenOrCreate,FileAccess.Write))
                {
                      while (true)
                  {
                    //返回實際讀取到的字節
                    int r = fsread.Read(bytsize, 0, bytsize.Length);
                   //當字節位0的時候 證明已經讀取結束
                    if(r==0){
                        break;
                    }
                    fswrite.Write(bytsize,0,r);

                }

             }
              
            }

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM