1. 程式人生 > >Unity 中對檔案的簡單的寫入方法和 Filestream函式

Unity 中對檔案的簡單的寫入方法和 Filestream函式

最近在寫遊戲的時候,用到很多讀取和寫入,現在就帶大家簡單的瞭解一下檔案的讀取和寫入(這裡我們先說檔案的寫入,讀取我們會在下一篇說)。

我們都知道,要寫一個檔案或讀取一個檔案,必須知道檔案的路徑。

這裡我們就以Unity為例,Unity中獲取路徑的方法:

Application.dataPath(資料路徑)

Application.temporaryCachePath(臨時路徑)

Application. persistentDataPath(持久資料路徑

廢話先不多說上程式碼:

using UnityEngine;

using System.Collections;

using System.IO;

using System.Text;

using System;

public class writeTxT : MonoBehaviour {

void Start(){

        string name=”write.txt”;

String path=Application.dataPath;

//寫入流

writeFile(path,name);

//追加字元

addFile(path,name);

//逐個加入

addOneByOne(path)

}

//寫入流

void writeFile(string path,string fileName){

            FileStream fs = newFileStream(path+"//"+fileName, FileMode.Create);   //

開啟一個寫入流

                   stringstr = "寫入檔案";

                   byte[]bytes = Encoding.UTF8.GetBytes(str);

                   fs.Write(bytes,0, bytes.Length);

                   fs.Flush();     //流會緩衝,此行程式碼指示流不要緩衝資料,立即寫入到檔案。

                   fs.Close();     //關閉流並釋放所有資源,同時將緩衝區的沒有寫入的資料,寫入然後再關閉。

                   fs.Dispose();   //

釋放流所佔用的資源,Dispose()會呼叫Close(),Close()會呼叫Flush();    也會寫入緩衝區內的資料。

         }

//追加字元

         void addFile(string path,string fileName){

                   //寫入流,追加文字

                   FileStreamfs = new FileStream(path+"//"+fileName, FileMode.Append,FileAccess.Write);  //追加流,許可權設定為可寫

                   byte[]bytes = Encoding.UTF8.GetBytes("追加字元");

                   fs.Write(bytes,0, bytes.Length);

                   fs.Flush();

         }

//寫入流,逐個字元逐個字元吸入

         void addOneByOne(string path){

                   //寫入流,逐個字元逐個字元吸入

                   FileStreamfs = new FileStream(path+"//"+"newFile.txt",FileMode.CreateNew, FileAccess.Write);    // newFile.txt並寫入

                   byte[]bytes = Encoding.UTF8.GetBytes("逐個字元逐個字元吸入");

                   foreach(byte b in bytes)

                   {

                            fs.WriteByte(b);        //逐個位元組逐個位元組追加入文字

                   }

                   fs.Flush();

         }

}

程式碼都寫完了,小夥伴時候對上面的有什麼疑問,是不是對某些函式不是多瞭解,那麼接下來我們就瞭解一下,程式碼裡面用到的函式(這裡我們簡單的瞭解下)。

FileStream 

(具體用法,可以參考:https://msdn.microsoft.com/zh-cn/library/system.io.filestream.aspx)

能夠對對系統上的檔案進行讀、寫、開啟、關閉等操作。並對其他與檔案相關的作業系統提供控制代碼操作,如管道,標準輸入和標準輸出。讀寫操作可以指定為同步或非同步操作。FileStream對輸入輸出進行緩衝,從而提高效能。


提示:為了提高程式的可執行性,我們可以在開啟檔案的時候進行判斷,該檔案是否存在
if (Filestream.Exists(檔名)) {

                            print("this file already exists!");

                   }else {

                            print("create file !");

                   }

或者用

try{ 

         } 

         catch(System.IO.IOException e) { 

         }

方法。


就簡單的介紹到這裡,如有疑問請聯絡QQ13625263.