文件流的使用
使用文件流需要引用程序集:using System.IO;
文件流涉及到的类很多:
FileInfo:操作类。通过实例化对象,通过对象去调用方法实现对文件的操作。如果需要对文件进行大量操作,建议使用这个类。
File:操作类。是一个静态类,可以通过类直接调用方法实现对文件的操作,比较方便。如果是对文件进行少量的操作,建议使用这个类。
【文件流本身就是一个抽象的概念,可以简单把下面三个类的对象理解为文件流。当我们实例化时,就可以认为我们开启了一个文件流,然后就可以通过 FileInfo 和 File 两个操作类对文件进行操作。需要注意的是,文件流开启之后,需要我们手动释放文件流,不然程序会报错,同时也可以使用 using 关键字来规避这个问题】
FileStream:操作的是字节和字节数组,适用于任何类型的文件。
StreamWriter StreamReader:这两个类操作的是字符数据,只适用于文本类型的文件。
下面以文本文档为例:
1 using UnityEngine; 2 using System.IO; 3 4 public class Test : MonoBehaviour 5 { 6 FileStream fs; 7 StreamWriter sw; 8 StreamReader sr; 9 10 private void Start() 11 { 12 Do(); 13 } 14 18 private void Do() 19 { 20 FileInfo info = new FileInfo(Application.dataPath + @"\123.txt"); 21 //判断文件是否存在 22 if (info.Exists)//如果存在 23 { 24 //读取文件 25 //fs = info.OpenRead(); 26 sr = info.OpenText(); 27 //将读取的文件赋值给 str 并打印 28 string str = sr.ReadToEnd(); 29 print(str); 30 //释放流 两种方法用一个即可 31 //fs.Dispose(); 32 //fs.Close(); 33 sr.Dispose(); 34 sr.Close(); 35 } 36 else//如果不存在 37 { 38 //创建文件 39 //fs = info.Create();//文本文件两种方法都行 40 sw = info.CreateText(); 41 //写入数据 42 sw.Write("HelloWord!"); 43 //释放流 44 //fs.Dispose(); 45 //fs.Close(); 46 sw.Dispose(); 47 sw.Close(); 48 49 } 50 ///////////////////////////////////////////////////////////////////////////////////////////// 51 //File 的用法 52 //fs = File.Create(Application.dataPath + @"\123.txt"); 53 //sw = File.CreateText(Application.dataPath + @"\123.txt"); 54 } 55 56 }
使用 using 关键字就不再需要调用 Dispose() 或者 Close() 去释放流
1 using UnityEngine; 2 using System.IO; 3 4 public class Test : MonoBehaviour 5 { 6 private void Start() 7 { 8 //使用 using 关键字就不再需要调用 Dispose() 或者 Close() 去释放流 9 using (FileStream fileStream=new FileStream(Application.dataPath + @"\123.txt",FileMode.OpenOrCreate,FileAccess.ReadWrite)) 10 { 11 //执行代码........ 12 } 13 } 14 }
以上是文件流简单的使用方法以及思路,里面包含的方法很多,需要去慢慢摸索。关于 FileStream 类的更多用法请到序列化相关文章查阅。