Unity在Android端PC端以及编辑器环境下读取并写入文本的操作,直接上代码
创建并写入文本内容
public void CreateFileInPersistentData(string fileName,string content)
{
string path = Application.persistentDataPath + "/" + fileName;
if (File.Exists(path))
{
return;
}
else
{
FileStream fs = new FileStream(path, FileMode.Create);
fs.Close();
WriteTXT(fileName, content);
}
}
写入文本内容
public void WriteTXT(string fileName, string s)
{
string url = "";
if (Application.platform == RuntimePlatform.Android)
{
url = Application.persistentDataPath + "/" + fileName;
File.WriteAllText(url, s);
}
else if (Application.platform == RuntimePlatform.WindowsEditor || Application.platform == RuntimePlatform.WindowsPlayer)
{
url = Application.persistentDataPath + "/" + fileName;
FileStream fs = new FileStream(url, FileMode.Open);
byte[] bytes = new UTF8Encoding().GetBytes(s.ToString());
fs.Write(bytes, 0, bytes.Length);
fs.Close();
}
}
读取文本内容
public string LoadTXTtoString(string fileName)
{
string url = Application.persistentDataPath + "/" + fileName;
string s = "";
if (Application.platform == RuntimePlatform.Android)
{
s = File.ReadAllText(url);
}
else if (Application.platform == RuntimePlatform.WindowsEditor || Application.platform == RuntimePlatform.WindowsPlayer)
{
FileStream fs = new FileStream(url, FileMode.Open);
byte[] bytes = new byte[100];
fs.Read(bytes, 0, bytes.Length);
s = new UTF8Encoding().GetString(bytes);
fs.Close();
}
return s;
}
调用方法演示
public Text show_text;
public Button ok_btn;
private void Awake()
{
CreateFileInPersistentData("test.txt", "这是一个测试文本...");
}
private void Start()
{
ok_btn.onClick.AddListener(() => {show_text.text = LoadTXTtoString("test.txt"});
}