【Unity】把字符串保存成文件的2种方式

using UnityEngine;
using System.Collections;
using System.IO;
/// 
/// 脚本位置:摄像机
/// 脚本功能:将www下载到的字符串保存到本地
/// 创建时间:2015年9月8日
/// 

public class Test2 : MonoBehaviour
{

	// Use this for initialization
	void Start ()
	{
		// 开启协程
		StartCoroutine (DownXml ());
	}
	
	// 定义一个协程
	IEnumerator DownXml ()
	{
		// 使用www方式下载一个天气预报的接口里的字符串
		WWW www = new WWW ("http://flash.weather.com.cn/wmaps/xml/dalian.xml");
		// 等到www彻底有返回值的时候,既字符串下载完成
		yield return www;

		// 定义一个字符串数组是因为File.WriteAllLines方法的第二个参数是数组类型
		string[] info = new string[1];
		// 将下载到的字符串保存到数组中
		info [0] = www.text;
		【覆盖】
		// 保存方式1:将下载得到的数组保存到Unity工程中的Assets目录下,命名为test2.txt
		// 这种方式保存的文件在Unity工程中可以正常读取,在Ios和Android设备上则无法读取
		// 如果这个文件已经存在,再次执行此代码则会覆盖原来的文件
		File.WriteAllLines (Application.dataPath + "/test2.txt", info);

		【覆盖】
		// 保存方式2:Application.persistentDataPath会把下载到的文件保存到手机的沙盒当中,这样就可以在手机上进行读取操作了
		// 如果这个文件已经存在,再次执行此代码则会覆盖原来的文件
		File.WriteAllLines(Application.persistentDataPath + "/persistentDataPath.xml",info);
		// 用这句代码可以测试文件保存的路径
		// 我的位置是/Users/long/Library/Application Support/DefaultCompany/Weather/persistentDataPath.xml
		FileInfo testFile = new FileInfo(Application.persistentDataPath + "/persistentDataPath.xml");
		Debug.Log(testFile);

		【追加】
		// 保存方式3:使用流方式保存,参数中的保存路径依然决定了文件的可操作性
		// 如果这个文件已经存在,再次执行此代码则会在原来文件的内容下进行追加,不会覆盖
		StreamWriter str = new StreamWriter(Application.dataPath + "/test2222.txt",true);
		str.WriteLine(www.text);
		// 关闭流
		str.Close();
		// 销毁流
		str.Dispose();
	}
}

你可能感兴趣的:(【Unity】)