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(); //
}
//追加字元
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.