二进制
BinaryReader
文本 ascii编码
TextReader
StringReader
StreamReader
你要知道StringReader,StreamReader,TextReader是一个什么关系,TextReader是一个抽象类,他表示的意义是一个文本的读取器(相同的有
TextWriter),什么叫文本的读取器,就是说他从底层(也许是流)读取string出来,主要的是ReadLine方法。那么针对不同的底层有不同的
读取器,其中StreamReader是从一个流来获取数据的,而StringReader和Stream没关系了,直接从一个字符串string读取,想一个包装器一样
把一个string伪装成一个TextReader。
然后是流,刚刚说了StreamReader是从流来的,那么必定有各种各样的流类型,其中FileStream是最常见的一种流了,从一个文件中获取一个
流对象。那么还有很多别的类型的,比如MemoryStream,他是把内存的一部分当作一个流来处理,还有NetworkStream,代表一个网络流,比
如你请求一个网站的时候就会用到它,CryptoStream是一种加密解密用的流,而GZipStream是压缩用的。其实StreamReader不需要关心底层是
什么流,只需要知道他是一个Stream就行了
至于File类,算是一个快速完成任务所提供的快捷方式,比如如果从一个文件中读取所有的文本,那么你需要一个FileStream,一个
StreamReader,然后还要释放他,很麻烦,那么使用File类的ReadAllText可以一句话完成任务。
通常来说看你需要使用高级功能多还是简单完成任务多,比如你需要从一个文件中解压数据流同时解密同时读取文本,那么File类根本无法提
供这样的功能,你需要自己写各种流包装在一起,那么如果仅仅是需要读取所有数据的话,那么File.ReadAllText是再好不过了,一方面可以
让你的代码简洁,可读性好,另一方面也让你出错的几率降低,减少bug
File 多为静态
Fileinfo 为单个文件类
C#的FileStream类提供了最原始的字节级上的文件读写功能,但我们习惯于对字符串操作,于是StreamWriter和 StreamReader类增强了FileStream,它让我们在字符串级别上操作文件,但有的时候我们还是需要在字节级上操作文件,却又不是一个字节 一个字节的操作,通常是2个、4个或8个字节这样操作,这便有了BinaryWriter和BinaryReader类,它们可以将一个字符或数字按指定 个数字节写入,也可以一次读取指定个数字节转为字符或数字。
DirectoryInfo info = Directory.CreateDirectory(Application.persistentDataPath+"//aa");
DirectoryInfo fo = new DirectoryInfo(Application.persistentDataPath + "//bb");
fo.Create();
FileInfo file = new FileInfo(Application.persistentDataPath + "/aa" + "//aa.txt");
StreamWriter writer=file.AppendText();
writer.Write("aa");
writer.Write("bb");
writer.Close();
writer.Dispose();
FileStream stream = File.Create(Application.persistentDataPath + "/bb" + "//bb.txt");
StreamWriter reader = new StreamWriter(stream);
reader.Write("cc");
reader.Write("dd");
reader.Close();
reader.Dispose();
FileInfo aaFile =new FileInfo(Application.persistentDataPath + "/aa/aa.txt");
FileStream stream = aaFile.Open(FileMode.Open, FileAccess.Read);
StreamReader read = new StreamReader(stream);
string txt= read.ReadLine();
read.Close();
read.Dispose();
Debug.Log(txt);
主要思路
获取流
然后用streamwrite 和streamread
主要思路
获取流
然后用streamwrite 和streamread
==============================================
IEnumerator Load()
{
WWW www = new WWW("");
yield return www;
StartCoroutine(Load());