Unity各类基础数据库的基本操作(一)
来源:互联网 发布:FGO黑贞各礼装伤害数据 编辑:程序博客网 时间:2024/06/05 11:43
Unity各类基础数据库的基本操作(一)--TXT
对数据库的操作无非是增删改查。
在采取对TXT数据库文件操作时,注意先引用命名空间:
I/O操作的明明空间:
using System.IO
Unity编辑器的命名空间:
using UnityEditor;
1.首先是创建写入数据
/// <summary>
/// 创建并写入数据
/// </summary>
/// <param name="path">Path.文件路径</param>
/// <param name="name">Name.文件名称</param>
/// <param name="info">Info.要写入的信息</param>
void CreateFile(string path,string name,string info)
{
StreamWriter sw;//写入流
//定义一个文本
FileInfo fi = new FileInfo(path + "//" + name);
//如果文本不存在,创建路径
if (!fi.Exists) {
sw = fi.CreateText();
} else {
//如果存在,打开
sw = fi.AppendText();
}//现在这个fi一定存在
//以行的形式写入信息
sw.WriteLine(info);
//关闭流
sw.Close();
//销毁流
sw.Dispose();
}
2.读取数据
/// <summary>
/// 读取数据
/// </summary>
/// <returns>The file.文件信息</returns>
/// <param name="">.文件名称</param>
ArrayList LoadFile(string path ,string name){
StreamReader sr;//读取流
try {//尝试,视图
//两个方法是一样的,File是静态类,FileInfo:是普通类
sr = File.OpenText(path + "//" + name);
// FileInfo fi = new FileInfo(path + "//"+ name);
// sr = fi.OpenText();
} catch (System.Exception ex) {//捕获,Exception:异常(运行时出现的错误)
return null;//抛出捕获的异常
}
string strLine;//行的信息
ArrayList arrayList = new ArrayList();
//不为空,则一直循环,也就是sr.ReadLine阅读到了内容
while((strLine = sr.ReadLine())!= null){
//吧阅读到的内容添加到ArrayList中
arrayList.Add (strLine);
}
//关闭流
sr.Close();
//销毁流
sr.Dispose();
return arrayList;
}
File和FileInfo的区别:
File是静态类,他对应整个系统进行操作,方法均为静态方法,如果只是对文件进行少量的操作,
如判断文件是否存在之类的,或者对很多的文件精心操作,
建议使用File类,因为可以避免频繁创建和释放对象的系统开销
FlieInfo是一个实例类(普通类),它对应一个具体的文件进行操作,方法大部分是普通方法,
它里面的操作可能是调用的File类里面的静态方法,如果是对一个文件进行大量操作,建议使用FileInfo
在安全检查方面,通过File类去掉用某个方法,都要占用CPU一定的处理时间来进行安全检查
即使是使用File类不同的方法重复对一个文件访问时,也是如此,而FileInfo类只在创建FileinFo对象的时候执行一次安全检查
3.删除数据
void DeleteFile(string path ,string name){
//两个方法,静态,普通
File.Delete (path + "//" + name);
// FileInfo fi = new FileInfo (path + "//" + name);
// fi.Delete ();
}
4.调用这些方法
if (Input.GetKeyDown(KeyCode.C)) {
//实例化写入的方法,传入“Application.dataPath”路径和文件名,“要写入的内容”,三个参数
CreateFile (Application.dataPath,"Test01.txt","TXT数据库测试01");
CreateFile (Application.dataPath, "Test01.txt", "TXT数据库测试02");
//刷新project视图
AssetDatabase.Refresh();
}
if (Input.GetKeyDown(KeyCode.R)) {
//实例化读取数据的方法,传路径,读取的文件名,因为方法里返回一个ArrayList,所以需要接受一下
_ArrayList = LoadFile (Application.dataPath, Test01.txt");
//遍历,打印出来
foreach (string item in _ArrayList) {
print (item);
}
}
if (Input.GetKeyDown(KeyCode.D)) {
DeleteFile (Application.dataPath,"Test01.txt");
//预编译命令
#if UNITY_EDITOR_OSX //运行平台名称,这用的是Mac
//刷新project视图,AssetDatabase:数据库,Refresh:刷新
AssetDatabase.Refresh();
#elif UNITY_ANDROID
print(111);
#endif
}
源代码:
using UnityEngine;using System.Collections;using System.IO;//I/O操作的命名空间using UnityEditor;//Unity编辑器的命名空间public class Data_TxT : MonoBehaviour {//定义一个数组private ArrayList _ArrayList;void Start () {//打印路径名print (Application.dataPath);}//end_Startvoid Update () {if (Input.GetKeyDown(KeyCode.C)) {//实例化写入的方法,传入“Application.dataPath”路径和文件名,“要写入的内容”,三个参数CreateFile (Application.dataPath,"Test01.txt","TXT数据库测试01");CreateFile (Application.dataPath, "Test01.txt", "TXT数据库测试02");//刷新project视图AssetDatabase.Refresh();}if (Input.GetKeyDown(KeyCode.R)) {//实例化读取数据的方法,传路径,读取的文件名,因为方法里返回一个ArrayList,所以需要接受一下_ArrayList = LoadFile (Application.dataPath, "Test01.txt");//遍历,打印出来foreach (string item in _ArrayList) {print (item);}}if (Input.GetKeyDown(KeyCode.D)) {DeleteFile (Application.dataPath,"Test01.txt");//预编译命令#if UNITY_EDITOR_OSX//刷新project视图,AssetDatabase:数据库,Refresh:刷新AssetDatabase.Refresh();#elif UNITY_ANDROIDprint(111);#endif}}//end_Update/// <summary>/// 创建并写入数据/// </summary>/// <param name="path">Path.文件路径</param>/// <param name="name">Name.文件名称</param>/// <param name="info">Info.要写入的信息</param>void CreateFile(string path,string name,string info){StreamWriter sw;//写入流//定义一个文本FileInfo fi = new FileInfo(path + "//" + name);//如果文本不存在,创建路径if (!fi.Exists) {sw = fi.CreateText();} else {//如果存在,打开sw = fi.AppendText();}//现在这个fi一定存在//以行的形式写入信息sw.WriteLine(info);//关闭流sw.Close();//销毁流sw.Dispose();}/// <summary>/// 读取数据/// </summary>/// <returns>The file.文件信息</returns>/// <param name="">.文件名称</param>ArrayList LoadFile(string path ,string name){StreamReader sr;//读取流try {//尝试,视图//两个方法是一样的,File是静态类,FileInfo:是普通类sr = File.OpenText(path + "//" + name);//FileInfo fi = new FileInfo(path + "//"+ name);//sr = fi.OpenText();} catch (System.Exception ex) {//捕获,Exception:异常(运行时出现的错误)return null;//抛出捕获的异常}string strLine;//行的信息ArrayList arrayList = new ArrayList();//不为空,则一直循环,也就是sr.ReadLine阅读到了内容while((strLine = sr.ReadLine())!= null){//吧阅读到的内容添加到ArrayList中arrayList.Add (strLine);}//关闭流sr.Close();//销毁流sr.Dispose();return arrayList;}void DeleteFile(string path ,string name){//两个方法,静态,普通File.Delete (path + "//" + name);//FileInfo fi = new FileInfo (path + "//" + name);//fi.Delete ();}}
- Unity各类基础数据库的基本操作(一)
- Unity各类数据库的基本操作(二)-- CSV
- Unity各类数据库的基本操作(三)-- JSON
- Unity各类数据库的基本操作(四)-- XML
- Unity各类数据库的基本操作(五)-- PlayerPrefs
- Unity各类数据库的基本操作(六)-- SQLite
- unity之数据库的基本操作
- MySQL(一)--数据库的基本操作
- 数据库的基本操作(一)
- Linux基础命令的操作(一)之基本操作
- MySQL数据库基本操作(表的操作一)
- 数据库基础知识点一:Oracle入门,数据库基本操作,函数
- Jedis的基本操作-各类数据
- MySQL基础2---数据库的基本操作
- unity之数据库的基本操作和arrylist
- SQLite数据库对数据的基本操作(一)
- redis基础一(基本操作)
- mysql数据库基本操作(一)
- UVa 1584 Circular Sequence
- Android菜单滑动
- MongoDB--命令
- 百度地图搜索(二)
- HAWQ技术解析(十四) —— 高可用性
- Unity各类基础数据库的基本操作(一)
- 在Objective-C中浅谈面向对象
- 获取img对象的高度宽度像素
- 复杂的选择屏幕搜索帮助
- 《C和指针》学习记录——第3章数据_常量
- spring-boot 集成 activemq
- 常用python——pandas
- 面向对象进阶一
- How Many Nines 【日期计算】