Unity Fileinfo和Directoryinfo以及File與Filestream還有Streamwriter和Streamreader


簡單記錄一下

1.    Fileinfo和Directoryinfo  

 

對於文件和文件夾的操作,Fileinfo和Directoryinfo是對文件和文件夾進行一些屬性類的操作,比如文件的創造,移動,刪除,重建,是不能對文件里面具體的內容進行操作的。

FileInfo 類   fileinfo類是對於文件的操作,

 FileInfo strint = new FileInfo(str.ToString());
        if (!strint.Exists )  //如果不存在 就創建
        {
            strint.Create();
        }

下面是directoryinfo類主要是對文件夾進行操作

 DirectoryInfo dirinfo = new DirectoryInfo(@"D:\text");
        //獲取其父目錄;
        if (!dirinfo.Exists)
        //如果該文件夾不存在,則新建一個該文件夾
        {
            dirinfo.Create();
        }
        dirinfo.CreateSubdirectory("這是子目錄");

這兩個類來讀取文件和文件夾屬性,在這兩個類中主要是用來查看文件的基本屬性,創建或者移動文件,判斷路徑是否存在等,這兩個類都是在 System.IO類下的,使用他們之前需要先using一下。fileinfo和directoryinfo類就是一般的對文件和文件夾的操作,包括讀取信息啊,進行文件夾的復制和刪除,創建等。這兩個類都是非靜態類在使用時,需要進行實例化。

 

2.   File和Filestream   

一般file類的操作對象是文本文件,而filestream類的操作是非文本文件用的比較多。如果文件太大,則用file類處理會很慢,這時用Filestream  數據流類就比較適合讀文件較大的文件

首先是File 

 string str = File.ReadAllText("");
        //輸入一個相對路徑,返回的是一個字符串型,是一行一行的讀取輸出;ReadAllText
        Debug.Log(str);
        byte[] str1 = File.ReadAllBytes("");
        //這是讀取文件的內容,返回的是字節形式的數組;ReadAllBytes
        foreach (var aa  in str1)
        //遍歷方式讀取數組中的內容;
        {
            Debug.Log(aa);
        }
        byte[] str2 = File.ReadAllBytes("圖片.png");
        //讀取一個圖片,結果以字節的形式返回在一個數組內;ReadAllBytes
        foreach (var item in str2)
        {
            Debug.Log(item);
        }

File 的寫入操作

 //  寫入操作
        File.WriteAllText("寫入的文件.txt", "這是寫入的內容");
        //在默認輸出路徑下,創建一個txt文件,並且在其中寫入以上內容;

        File.WriteAllLines("新的文件", new string[] { "qwe", "wer" });
        //在默認輸出路徑下創建一個新的txt文件,並且在其中寫入數組元素;

        byte[] arr = File.ReadAllBytes("圖片.png");
        //首先將圖片的字節存儲在字節數組中;
        File.WriteAllBytes("這是圖片.png", arr);

FileStream類  讀的操作

  //讀的操作
        FileStream feadt = new FileStream("TextFile1.txt", FileMode.Open);
      
        //實例化數據流,對文件的操作是打開;
        byte[] arrt = new byte[1024];
        //定義一個1024字節的數組,用於數據存儲;\
        while (true)
        {
            int len = feadt.Read(arr, 0, arr.Length);
            //從流中讀取數據塊並把它放在定義好的數組中,返回的該文件的真實長度;
            //讀入緩沖區中的總字節數。如果當前的字節數沒有所請求那么多,則總字節數可能小於所請求的字節數;或者如果已到達流的末尾,則為零
            if (len == 0)
            {
                Debug.Log("lol");
                break;
            }
            for (int i = 0; i < len; i++)
            {
                Debug.Log(arr[i] + " ");
            }
        }

 

 FileStream類  讀寫的操作

 //實例化一個讀操作,目標文件是該默認輸出文件的圖片;
        FileStream fsread = new FileStream("123.png", FileMode.Open);

        //實例化一個寫操作,這里是創建一個文件,用來寫入數據;
        FileStream fswrite = new FileStream("456.png", FileMode.Create);
        //定義一個2M的字節存儲空間;
        byte[] arrt = new byte[1024 * 1024 * 2];
        
        while (true)
        {
            int len = fsread.Read(arrt, 0, arr.Length);
            //實際的文件大小;
            if (len == 0)
            {
                Debug.Log("HAO D");
                break;
            }
            fswrite.Write(arr, 0, len);
            //將數組中的數據寫入目標位置;
        }
        fsread.Close();
        fswrite.Close();
        //關閉數據流;

 

 

3.streamreader,這是對文件內部數據的讀操作:

 

  StreamReader sread = new StreamReader("TextFile1.txt");
        //創建一個實例對象,所要讀取的文件時TEXE文件;
        while (true)
        {
            string strin = sread.ReadLine();
            //該方法返回的時一行,就是執行一次返回一行;
            if (strin == null)
            {//如果讀取到文件的最后,則是null
                Debug.Log("lol");
                break;
            }
          Debug.Log(str);

        }

 

 

 

4.streamweiter類,就是寫入數據流:

 

  StreamWriter swrit = new StreamWriter("TEXT2.txt");
        //創建一個寫數據流,寫的數據流寫入的時默認路徑下面的文件;
        while (true)
        {
            string strin = "lol";
            //用戶輸入需要寫的數據;
            if (strin == "lol")
            { break; }
            swrit.Write(str);

        }
        swrit.Close();

 

 對文件的其他操作,判斷存不存在

//1.判斷指定路徑內是否有指定文件夾-Directory.Exists

  if (System.IO.Directory.Exists()
        {
            Debug.Log("文件夾已經存在");            
        }
        else
        {
        Debug.Log("文件夾不存在");            

        }

//2.判斷指定路徑內是否有指定文件- File.Exists

if (System.IO.File.Exists()
        {
            Debug.Log("文件已經存在");            
        }
        else
        {
        Debug.Log("文件不存在");            

        }

 

 

 有需要會在補充


免責聲明!

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



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