UNITY存取文件

前几天有个朋友问我为什么在IOS平台中可以正常的读写文件可是在Android平台中就无法正常的读写。当时因为在上班所以我没时间来帮他解决,晚上回家后我就拿起安卓手机真机调试很快就定位问题所在,原来是他文件的路径写错了。开发中往往一道很难的问题解开的时候发现原来真的非常的简单,哇咔咔。  刚好在MOMO的书中也有涉及到文件的读取与写入,那么本节我将书中的部分内容搬到博客中为大家讲解一下。废话我就不多说了咱直奔主题,创建Text.cs脚本,直接挂在摄像机中。代码中包括:创建文件、读取文件、删除文件。

Text.cs

 

[JavaScript]  纯文本查看  复制代码
?
001
002
003
004
005
006
007
008
009
010
011
012
013
014
015
016
017
018
019
020
021
022
023
024
025
026
027
028
029
030
031
032
033
034
035
036
037
038
039
040
041
042
043
044
045
046
047
048
049
050
051
052
053
054
055
056
057
058
059
060
061
062
063
064
065
066
067
068
069
070
071
072
073
074
075
076
077
078
079
080
081
082
083
084
085
086
087
088
089
090
091
092
093
094
095
096
097
098
099
100
101
102
103
104
105
106
107
108
109
110
using UnityEngine;
using System.Collections;
using System.IO;
using System.Collections.Generic;
using System;
 
public class Text : MonoBehaviour {
     //文本中每行的内容
     ArrayList infoall;
     //皮肤资源,这里用于显示中文
     public GUISkin skin;
     void Start ()
     {
 
         //删除文件
         DeleteFile(Application.persistentDataPath,\"FileName.txt\");
 
         //创建文件,共写入3次数据
         CreateFile(Application.persistentDataPath,\"FileName.txt\",\"宣雨松MOMO\");
         CreateFile(Application.persistentDataPath,\"FileName.txt\",\"宣雨松MOMO\");
         CreateFile(Application.persistentDataPath ,\"FileName.txt\",\"宣雨松MOMO\");
         //得到文本中每一行的内容
         infoall = LoadFile(Application.persistentDataPath,\"FileName.txt\");
 
     }
 
    /**
    * path:文件创建目录
    * name:文件的名称
    *  info:写入的内容
    */
    void CreateFile(string path,string name,string info)
    {
       //文件流信息
       StreamWriter sw;
       FileInfo t = new FileInfo(path+\" //\"+ name);
       if (!t.Exists)
       {
         //如果此文件不存在则创建
         sw = t.CreateText();
       }
       else
       {
         //如果此文件存在则打开
         sw = t.AppendText();
       }
       //以行的形式写入信息
       sw.WriteLine(info);
       //关闭流
       sw.Close();
       //销毁流
       sw.Dispose();
   
 
   /**
    * path:读取文件的路径
    * name:读取文件的名称
    */
    ArrayList LoadFile(string path,string name)
    {
         //使用流的形式读取
         StreamReader sr = null ;
         try {
             sr = File.OpenText(path+\" //\"+ name);
         } catch (Exception e)
         {
             //路径与名称未找到文件则直接返回空
             return null ;
         }
         string line;
         ArrayList arrlist = new ArrayList();
         while ((line = sr.ReadLine()) != null )
         {
             //一行一行的读取
             //将每一行的内容存入数组链表容器中
             arrlist.Add(line);
         }
         //关闭流
         sr.Close();
         //销毁流
         sr.Dispose();
         //将数组链表容器返回
         return arrlist;
    }  
 
   /**
    * path:删除文件的路径
    * name:删除文件的名称
    */
 
    void DeleteFile(string path,string name)
    {
         File.Delete(path+\" //\"+ name);
 
    }
 
    void OnGUI()
    {
         //用新的皮肤资源,显示中文
         GUI.skin = skin;
         //读取文件中的所有内容
         foreach(string str in infoall)
         {
             //绘制在屏幕当中,哇咔咔!
             GUILayout.Label(str);
         }
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值