1 public class testwriter : MonoBehaviour { 2 3 // Use this for initialization 4 void Start () { 5 6 } 7 8 [MenuItem("Testx/test")] 9 static void test() 10 { 11 //不正确写法: 12 var writer = new StreamWriter(File.Create("Assets/test")); 13 writer.Write(123); 14 writer.Flush(); //刷新也没用,可以看到磁盘上文件老半天都是0KB 15 16 //正确写法一 17 writer = new StreamWriter(File.Create("Assets/test")); 18 writer.Write(123); 19 writer.Dispose();//使用完后立即释放 20 21 //正确写法二 22 using(var wrter = new StreamWriter(File.Create("Assets/test"))){ 23 wrter.Write(123); 24 //wrter.Flush();//没必要刷新,出了范围后会立即将内容写到磁盘,可以看到磁盘文件立即是1K了 25 //wrter.Dispose();//这个也没必要 26 }//自动被释放 27 28 //如果流对象在使用完后不立即释放可能会出现一些问题,在UNITY中出现了卡死现象: 29 //具体操作为:按照上面不正确代码,执行后,打开磁盘,先是看到0KB的test文件,很快变成1KB,这时再切回UNITY 30 //要么会卡死,要么提示:资源正在被另一进程使用,挂掉。 31 32 } 33 // Update is called once per frame 34 void Update () { 35 36 } 37 }