Unity 数据的持久化保存

介绍


FileSystemInfo: 这是表示任何文件系统对象的基类。

File: 表示文件系统上的文件,用来来读取文件属性、查看文件属性、创建文件、移动文件、重命名文件 。

FileInfo:同File一样,File为静态类,Fileinfo需要实例化。

Directory:表示文件系统上的文件,用来读取文件夹属性、查看文件夹属性、创建夹文件、移动夹文件、重命名文件夹。

DirectoryInfo:同Directory一样,Directory为静态类,Directoryinfo需要实例化。

FileStream :(文件流) 这个类用于任意文件(包括二进制文件)中读写。

StreamWriter:(流读取器)专门用于写文本文件。

StreamReader:(流写入器)专门用于读文本文件。

使用File类读写文件


读文件

File.ReadAllText(FilePath):根据文件路径读取文件中所有的文本。

File.ReadAllBytes():方法可以打开二进制文件把内容读入一个字节数组。

File.ReadAllLines():以行的形式读取文件,一行一个字符串,返回一个字符串的数组。

写入文件

File.WriteAllText():

File.WriteAllLines():

File.WriteAllBytes():

使用FileStream类读写文件


FileStream文件流的创建

FileStream fs3 = new FileStream(@"c:\xx\xx.doc",FileMode.Create,FileAccess.Write,FileShare.None);

FileInfo myfile3 = new FileInfo(@"c:\xx\xx.doc");

FileStream fs6= myfile3.Open(FileMode.Append,FileAccess.Write,FileShare.None);

FileStream文件流的关闭

fs.Close();方法去关闭流,关闭流会释放与它相关联的资源。

FileStream文件流读取内容

int nextByte = fs.ReadByte():读取一个字节(0-255)的数据,返回结果,如果达到流的。

末尾,就返回-1

int nBytesRead = fs.Read(ByteArray,0,nBytes):读取多个字节,第一个是存放的数组,第二个参数是开始存放的索引,第三个参数是要读取多少个字节。返回的结果是读取的自己的实际个数,如果达到流的末尾 返回-1。

FileStream文件流写取内容

byte NextByte = 100;fs.WriteByte(NextByte):把一个字节写入文件流中。

fs.Write(ByteArray,0,nBytes): 把一个自己数组写入文件流中 参数同上。

读取流 - 写入流(StreamReader-StreamWriter)读写文本文件


创建文本的读取流

StreamReader sr = new StreamReader(@"c:\xx\ReadMe.txt"):(会检查字节码标记确定编码格式)。

StreamReader str = new StreamReader(@"c:\xx\xx.txt",Encoding.UTF8):指定编码格式,可取的编码格式 ASCII Unicode UTF7 UTF8 UTF32。

FileStream fs = new FileStream(@"c:\xx\xx.txt",FileMode.Open,FileAccess.Read,FileShare.None)

StreamReader sr = new StreamReader(fs):在文件流的基础上创建文本读取流

FileInfo myFile = new FileInfo(@"c:\xx\xx.txt");

StreamReader sr = myFile.OpenText():通过文件信息创建文本读取流-第二种方式

 sr.Close();所有流用完之后关闭

读取文本文件

string nextLine = sr.ReadLine();//读取一行字符串

string restOfStream = sr.ReadToEnd();//读取流中所有剩余的文本内容

int nextChar = sr.Read();//只读取一个字符

int nChars = 100;

char[] charArray = new char[nChars];

int nCharsRead = sr.Read(charArray,0,nChars); 读取多个字符,第一个参数是

要存放的字符数组,第二个参数是从数组的哪一个索引开始放,第三个参数是读取多少个字

符 返回值是实际读取的字符的个数

文本写入流创建

StreamWriter sw = new StreamWriter(@"c:\xx\xx.txt");(默认使用UTF-8编码)

StreamWriter sw = new StreamWriter(@"c:\xx\xx.txt",true,Encoding.ASCII)第二个参数表示是否以追加的方式打开,第三个参数是编码方式

FileStream fs = new

FileStream(@"c:\xx\xx.txt",FileMode.CreateNew,FileAccess.Write,FileShare.Read);

StreamWriter sw = new StreamWriter(fs);通过FileStream创建StreamWriter

FileInfo myFile = new FileInfo(@"c:\xx\xx.txt");

StreamWriter sw = myFile.CreateText();通过FileInfo创建StreamWriter

 sw.Close();所有流用完之后关闭

文本写入流-写入

string nextLine = "x xx x x x x ";sw.Write(nextLine);写入一行字符

char nextChar = 'a';

sw.Write(nextChar);写入一个字符

char[] charArray = ..;

sw.Write(charArray);写入字符数组

sw.Write(charArray,StartIndex,Length):写入字符数组的一部分,1:要写入的数组 2:开始索引 3写入长度。

二进制的读写


BinaryWriter- BinaryReader

写入二进制。

BinaryWriter writer=new BinaryWriter (FileStream)

writer.Write(value);

读取为对应的数据。

BinaryReader reader=new BinaryWriter (FileStream)

 Return  reader.ReadSingle() ;reader.ReadInt32();

BinaryFormatter  

写入二进制。

BinaryFormatter f=new BinaryFormatter();

FileStream file;

String json;

f.Serialize(file,json);

File.close();

读取为对应的数据。

BinaryFormatter f=new BinaryFormatter();

FileStream file;

f.Serialize(file,json);

JsonUtility.FromJsonOverWrite((string)f.Deserialize(file),(写入的对象Object));

File.close();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值