策划写Excel ---> 程序解析Excel为Text(letter) --->程序读取Txt
文件路径:
Appliction.dataPath 项目资源路径
Application.streamingAssetsPath
PC:项目资源路径下的streamingAssets文件夹(需要手动创建同名文件夹)“这个目录只能用WWW读取(PC特例也可以用文件读取去读(FileStream)),且不能修改(PC可以修改)”
Android:安装在一个assets文件夹
如果想要把一些程序随文件打包到,即在手机端可以查看,则应该它们放到这一个目录之下。
IOS:Doucment/app
Application.persistentDataPath:
可读可写文件目录
在不同的平台上这个路径是不一样的
文档操作流程:
- 找到目录
- 打开
- 读写
- 关闭
void Start()
{
//找到文件目录
string path = Application.streamingAssetsPath + "/configer.ll";
//打开文件
StreamReader tmpReader = new StreamReader(path);
//开始读取 "一行行的读"
string line = tmpReader.ReadLine();
Debug.Log("line=" + line);
//查看有多少行
int lineCount = int.Parse(line);
for (int i = 0; i < lineCount; i++)
{
string tmpLine= tmpReader.ReadLine();
Debug.Log("第" + i + "条数据为:" + tmpLine);
}
}
现在丰富文本内容
这样也能读取一行的内容,但是需要切割(读取字符串)
/// <summary>
/// 对Txt进行读取操作
/// </summary>
public void ReadStream()
{
//找到文件目录
string path = Application.streamingAssetsPath + "/configer.ll";
//打开文件
StreamReader tmpReader = new StreamReader(path);
//开始读取 "一行行的读"
string line = tmpReader.ReadLine();
//Debug.Log("line=" + line);
//查看有多少行
int lineCount = int.Parse(line);
string tmpLine;
string[] tmpArray;
for (int i = 0; i < lineCount; i++)
{
tmpLine = tmpReader.ReadLine();
// Debug.Log("第" + i + "条数据为:" + tmpLine);
tmpArray = tmpLine.Split(' ');
//for (int j = 0; j < tmpArray.Length; j++)
//{
// Debug.Log("切割后第" + i + "条数据的第" + j + "个数据元素为" + tmpArray[j]);
//}
PlayerPrefs.SetString(tmpArray[0], tmpArray[1]);
}
tmpReader.Close();
}
现在开始写入数据(这种写入方式比较简单,弊端在于后面写入的内容会完全覆盖之前的内容)
/// <summary>
/// 对Txt进行写入操作
/// </summary>
public void WriteStream()
{
//找到目录
string path = Application.streamingAssetsPath + "/configer.ll";
//打开文件
StreamWriter tmpWrite = new StreamWriter(path);
//进行写入操作
tmpWrite.WriteLine("88888888");
tmpWrite.WriteLine("admin 123");
//关闭
tmpWrite.Close();
}
FileStream 读写的是字节流
/// <summary>
/// 利用文件的方式对Txt进行读取操作
/// </summary>
public void FileWriteStream()
{
//找到目录
string path = Application.streamingAssetsPath + "/configer.ll";
//打开文件
FileStream tmpFileStream = new FileStream(path, FileMode.OpenOrCreate);
//将光标跳到从起点开始偏移两个位置
tmpFileStream.Seek(2, SeekOrigin.Begin);
//写入一个字节流
tmpFileStream.WriteByte(12);
//再写入一个
tmpFileStream.WriteByte(34);
//关闭文件读取
tmpFileStream.Close();
}
解决这个写入小bug,刚才写入的是字节流,我们需要把它们转化为可以识别的字符串
/// <summary>
/// 将Txt中的字节流转化为可以识别的内容
/// </summary>
public void ReadByte()
{
//找到目录
string path = Application.streamingAssetsPath + "/configer.ll";
//打开文件
FileStream tmpFileStream = new FileStream(path, FileMode.OpenOrCreate);
//将光标跳到从起点开始偏移两个位置
tmpFileStream.Seek(2, SeekOrigin.Begin);
int tmpOne = tmpFileStream.ReadByte();
Debug.Log("第一次读取的内容:" + tmpOne);
int tmpTwo = tmpFileStream.ReadByte();
Debug.Log("第二次读取的内容:" + tmpTwo);
tmpFileStream.Close();
}
总之:一般就是进行读操作,除了第一次将Excel转化为Txt除外,如果要改数据就直接对配置文件进行修改