unity3d 读写txt_unity3d 写入文件 - CSDN
  • 程序读取Txt   文件路径:   Appliction.dataPath 项目资源路径   Application.streamingAssetsPath    PC:项目资源路径下的streamingAssets文件夹(需要手动创建同名文件夹)“这个目录只能用...

    策划写Excel  ---> 程序解析Excel为Text(letter) --->程序读取Txt

     

    文件路径:

     

    Appliction.dataPath 项目资源路径

     

    Application.streamingAssetsPath 

     

    PC:项目资源路径下的streamingAssets文件夹(需要手动创建同名文件夹)“这个目录只能用WWW读取(PC特例也可以用文件读取去读(FileStream)),且不能修改(PC可以修改)”

    Android:安装在一个assets文件夹

    如果想要把一些程序随文件打包到,即在手机端可以查看,则应该它们放到这一个目录之下。

    IOS:Doucment/app

     

    Application.persistentDataPath:

    可读可写文件目录 

    在不同的平台上这个路径是不一样的

     

    文档操作流程:

    1. 找到目录

    2. 打开

    3. 读写

    4. 关闭

    void Start()
    
        {
    
            //找到文件目录
    
            string path = Application.streamingAssetsPath + "/configer.ll";
    
            //打开文件
    
            StreamReader tmpReader = new StreamReader(path);
    
            //开始读取 "一行行的读"
    
            string line = tmpReader.ReadLine();
    
            Debug.Log("line=" + line);
    
            //查看有多少行
    
            int lineCount = int.Parse(line);
    
            for (int i = 0; i < lineCount; i++)
    
            {
    
                string tmpLine= tmpReader.ReadLine();
    
                Debug.Log("第" + i + "条数据为:" + tmpLine);
    
            }
    
        }

     

    现在丰富文本内容

     

    这样也能读取一行的内容,但是需要切割(读取字符串)

    /// <summary>
    
        /// 对Txt进行读取操作
    
        /// </summary>
    
        public void ReadStream()
    
        {
    
            //找到文件目录
    
            string path = Application.streamingAssetsPath + "/configer.ll";
    
            //打开文件
    
            StreamReader tmpReader = new StreamReader(path);
    
            //开始读取 "一行行的读"
    
            string line = tmpReader.ReadLine();
    
            //Debug.Log("line=" + line);
    
            //查看有多少行
    
            int lineCount = int.Parse(line);
    
            string tmpLine;
    
            string[] tmpArray;
    
            for (int i = 0; i < lineCount; i++)
    
            {
    
                tmpLine = tmpReader.ReadLine();
    
                // Debug.Log("第" + i + "条数据为:" + tmpLine);
    
                tmpArray = tmpLine.Split(' ');
    
                //for (int j = 0; j < tmpArray.Length; j++)
    
                //{
    
                //    Debug.Log("切割后第" + i + "条数据的第" + j + "个数据元素为" +  tmpArray[j]);
    
                //}
    
                PlayerPrefs.SetString(tmpArray[0], tmpArray[1]);
    
            }
    
            tmpReader.Close();
    
        }

     

    现在开始写入数据(这种写入方式比较简单,弊端在于后面写入的内容会完全覆盖之前的内容) 

     /// <summary>
    
        /// 对Txt进行写入操作
    
        /// </summary>
    
        public void WriteStream()
    
        {
    
            //找到目录
    
            string path = Application.streamingAssetsPath + "/configer.ll";
    
            //打开文件
    
            StreamWriter tmpWrite = new StreamWriter(path);
    
            //进行写入操作
    
            tmpWrite.WriteLine("88888888");
    
            tmpWrite.WriteLine("admin 123");
    
            //关闭
    
            tmpWrite.Close();
    
        }
    
    FileStream 读写的是字节流
    
    /// <summary>
    
        /// 利用文件的方式对Txt进行读取操作
    
        /// </summary>
    
        public void FileWriteStream()
    
        {
    
            //找到目录
    
            string path = Application.streamingAssetsPath + "/configer.ll";
    
            //打开文件
    
            FileStream tmpFileStream = new FileStream(path, FileMode.OpenOrCreate);
    
            //将光标跳到从起点开始偏移两个位置
    
            tmpFileStream.Seek(2, SeekOrigin.Begin);
    
            //写入一个字节流
    
            tmpFileStream.WriteByte(12);
    
            //再写入一个
    
            tmpFileStream.WriteByte(34);
    
            //关闭文件读取
    
            tmpFileStream.Close();
    
        }

    解决这个写入小bug,刚才写入的是字节流,我们需要把它们转化为可以识别的字符串

    /// <summary>
    
        /// 将Txt中的字节流转化为可以识别的内容
    
        /// </summary>
    
        public void ReadByte()
    
        {
    
            //找到目录
    
            string path = Application.streamingAssetsPath + "/configer.ll";
    
            //打开文件
    
            FileStream tmpFileStream = new FileStream(path, FileMode.OpenOrCreate);
    
            //将光标跳到从起点开始偏移两个位置
    
            tmpFileStream.Seek(2, SeekOrigin.Begin);
    
            int tmpOne = tmpFileStream.ReadByte();
    
            Debug.Log("第一次读取的内容:" + tmpOne);
    
            int tmpTwo = tmpFileStream.ReadByte();
    
            Debug.Log("第二次读取的内容:" + tmpTwo);
    
            tmpFileStream.Close();
    
        }

    总之:一般就是进行读操作,除了第一次将Excel转化为Txt除外,如果要改数据就直接对配置文件进行修改

    展开全文
  • Unity如何读写Txt文档

    千次阅读 2019-03-21 20:53:08
    filenames = Application.dataPath + @"\StreamingAssets\配置文件.txt" 多媒体项目中经常遇到需要加载配置文件的,这里我们使用readAllLines方法 public string ReadALine(string FileName, int linenumber) //...
      filenames = Application.dataPath + @"\StreamingAssets\配置文件.txt"

    多媒体项目中经常遇到需要加载配置文件的,这里我们使用readAllLines方法

      public  string ReadALine(string FileName, int linenumber) // 参数1:打开的文件(路径+文件命),参数2:读取的行数
        {
           
    
            string[] strs = File.ReadAllLines(FileName);//将filename路径的txt读取为string数组
            
            if (linenumber == 0)
            {
                return "0";
            }
            else
            {
                return strs[linenumber - 1];
            }
        }
    
        写入txt的方法   File.WriteAllLines (数组,路径)

     

    展开全文
  • unity3d 读 写 TXT

    千次阅读 2013-03-15 10:45:09
    using UnityEngine; using System.IO; using System; using System.Collections;...public class CGraetText : MonoBehaviour ... private string m_sFileName = "FileName.txt"; // 文件名  private string
    using UnityEngine;
    using System.IO;
    using System;
    using System.Collections;
    public class CGraetText : MonoBehaviour
    {
        private string m_sFileName = "FileName.txt"; // 文件名
        private string m_sPath = Application.persistentDataPath; // 路径
        private ArrayList m_aArray; // 文本中每行的内容
        /*
         * sPath:文件创建目录
         * sName:文件的名称
         * nDate:数据
         */
        void fnCreateFile(string sPath, string sName, int nDate)
        {
            StreamWriter t_sStreamWriter; // 文件流信息
            FileInfo t_fFileInfo = new FileInfo(sPath + "//" + sName);
            if (!t_fFileInfo.Exists)
            {
                t_sStreamWriter = t_fFileInfo.CreateText();  // 如果此文件不存在则创建
            }
            else
            {
                t_sStreamWriter = t_fFileInfo.AppendText(); // 如果此文件存在则打开
            }
            t_sStreamWriter.WriteLine(nDate); // 以行的形式写入信息
            t_sStreamWriter.Close(); //关闭流
            t_sStreamWriter.Dispose(); // 销毁流
        }
        /*
         * path:读取文件的路径
         * name:读取文件的名称
         */
        ArrayList fnLoadFile(string sPath, string sName)
        {
            StreamReader t_sStreamReader = null; // 使用流的形式读取
            //try
            //{
                t_sStreamReader = File.OpenText(sPath + "//" + sName);
            //}
            //catch (Exception ex)
            //{
            //    return null;
            //}
            string t_sLine; // 每行的内容
            ArrayList t_aArrayList = new ArrayList(); // 容器
            while ((t_sLine = t_sStreamReader.ReadLine()) != null)
            {
                t_aArrayList.Add(t_sLine); // 将每一行的内容存入数组链表容器中
            }
            t_sStreamReader.Close(); // 关闭流
            
            t_sStreamReader.Dispose(); // 销毁流
            
            return t_aArrayList; // 将数组链表容器返回
        }
        /*
         * sPath:删除文件的路径
         * sName:删除文件的名称
         */
        void fnDeleteFile(string sPath, string sName)
        {
            File.Delete(sPath + "//" + sName);
        }

    }


    http://game.ceeger.com/forum/read.php?tid=2738

    展开全文
  • //注意:要读取的文件的编码类型要为utf-8,不然会出现中文乱码或者直接不显示,如果是其它编码方式可以把文件 //另保存为utf-8的格式 using UnityEngine; using System.Collections; using System.IO;...

    //注意:要读取的文件的编码类型要为utf-8,不然会出现中文乱码或者直接不显示,如果是其它编码方式可以把文件
    //另保存为utf-8的格式




    using UnityEngine;
    using System.Collections;
    using System.IO;//用法三的时候需要定义这个
    using System.Text;//法二的时候需要使用定义这个


    public class GUTexture : MonoBehaviour {
        GUIText m_GUIText;
        public TextAsset m_TextAsset;             //法一 ,这个需要在unity编辑器进行赋值,把.txt文本文件保存在Asset下的     Resources文件夹下,然后把.txt文件拖拽过来进行赋值
        TextAsset m_TextAsset1;
        string m_Str;
        string m_FileName;                             //法二要用
        string[] strs;                                        //法二要用

    void Start () {
            m_GUIText = gameObject.GetComponent<GUIText>();               //找到该游戏物体的GUIText组件,用来显示读取到 的文本
            m_FileName = "Z800虚拟头盔说明书链接UTF-8.txt";                       //法二要用,要读取的文件名,这个是相对路径
    }

     

       //鼠标进入该游戏物体执行 

        void OnMouseEnter() {

          m_GUIText.text = Resources.Load<TextAsset>("Z800虚拟头盔说明书链接").text;//法一,需要把文本文件保存在Asset文   件夹下的Resources文件夹内

            

     

     

           // ReadFile(m_FileName);//法二

           //m_GUIText.text = m_Str;//把读取到的内容放到GUIText组件中显示

     

     

            

     

           // Read();//法三

         //m_GUIText.text =m_Str;//把读取到的内容放到GUIText组件中显示

     

        }

     

     

     

     

    //方法二:通过ReadFile(名字自己定义)方法来读取,传入的是文件路径
       void ReadFile(string FileName) {
            strs = File.ReadAllLines(FileName);//读取文件的所有行,并将数据读取到定义好的字符数组strs中,一行存一个单元
            for (int i = 0; i < strs.Length; i++)
            {
                m_Str += strs[i];//读取每一行,并连起来
                m_Str += "\n";//每一行末尾换行
            }
        }
         

     

     

     

     

     

     

       

    //方法三: 下面这个是通过文件流来读取txt文件的方法
      /*  public void Read()
        {
            try
            {


                string pathSource = m_FileName;


                using (FileStream fsSource = new FileStream(pathSource,
                            FileMode.Open, FileAccess.Read))
                {
                    // Read the source file into a byte array.  
                    byte[] bytes = new byte[fsSource.Length];
                    int numBytesToRead = (int)fsSource.Length;
                    int numBytesRead = 0;
                    while (numBytesToRead > 0)
                    {
                        int n = fsSource.Read(bytes, numBytesRead, numBytesToRead);


                        if (n == 0)
                            break;
                        numBytesRead += n;
                        numBytesToRead -= n;
                    }
                    numBytesToRead = bytes.Length;
                    //text = Encoding.Default.GetString(bytes);  
                    m_Str= UTF8Encoding.UTF8.GetString(bytes);
                }
            }
            catch
            {
                //ioEx.Message  
            }
        }  
       

       */

     

     

     

     

     

    /* 法四

       using System.IO;
      using System.Text;

     

       Debug.Log(File.ReadAllText("C:\\Users\\zxy\\Desktop\\Z800虚拟头盔说明书链接.txt", Encoding.Default));                                       // ReadAllText方法第一个参数是要读取txt文件的路径,第二个参数是编码方式,这里采用默认

    */       

     

     

     

     

    /*一种以追加的方式写入txt方法

    using System.IO;
    using System.Text;

     File.AppendAllText("C:\\Users\\zxy\\Desktop\\Z800虚拟头盔说明书链接.txt", "我被写进来了",Encoding.Default);

    //第一个参数是要写入的文件路径,第二个参数是要写入的文本,第三个参数是编码方式

    */

       
    }

    展开全文
  • Unity3d 读写txt

    2016-01-07 20:17:05
    using UnityEngine; using System.Collections; using System.IO; using System; public class ReadOrSaveFile : MonoBehaviour ... //保存信息到文件 public void SaveContentToFile(string _Path,string _fileName
  • Unity3d 动态读取外部文件.txt

    热门讨论 2020-07-30 23:33:23
    Unity3d 动态读取外部文件,1,加载封装好的内部文件。2,加载磁盘文件
  • Unity3d 读取本地txt文件

    万次阅读 2014-04-23 17:35:33
    创建一个MyFile.txt文件、将它放到streamingAssetsPath文件夹下(没有的话手动创建一个)  var fileAddress = System.IO.Path.Combine(Application.streamingAssetsPath, "MyFile.txt"); FileInfo fInfo0 = new ...
  • Unity3d 获得两GameObject间距.txt Unity3d 获取当前系统时间.txt Unity3d 鼠标拾取.txt Unity3d 雨滴落水脚本.txt Unity3D单击物体弹出GUI窗口.txt unity3d的动力学汽车脚本.txt Unity3D读取保存XML文件.txt ...
  • 记录一个常用的读取TXT的方法:保存:需要一个位置,文件名字,存储内容查看
  • Unity读取本地文本txt的研究一

    万次阅读 2016-02-22 09:03:46
    StreamReader读取本地txt 新建一个txt保存在streamingAssets下, 具体代码 using UnityEngine; using System.Collections; using System.IO; using System.Text; using UnityEngine.UI; public class readtext : ...
  • Unity3d外部读取文本(常用)

    千次阅读 2014-08-25 22:00:56
    外部读取文本需要导入System.IO类,主要使用这个类的File类,具体API请查CSDN,这里只是简单的调用读取。要注意的是平台在PC。 我写了个方法,通过传递参数能获取文本的第几行内容
  • unity文件存储与读写

    2020-07-30 23:31:42
    NULL 博文链接:https://ligang7895123.iteye.com/blog/2378231
  • void Start() { loadpath = "F:/3/"; print(Directory.Exists(loadpath)); if (!Directory.Exists(loadpath)) { Directory.CreateDirectory(loadpath); ...
  • A8:Untiy逐行读取TXT中的信息

    千次阅读 2019-07-12 14:27:10
    using System.IO;string PrizeURL = System.Environment.CurrentDirectory; //自动获取当前文件在系统中的路径 ReadFile(PrizeURL, 4, 4); //读取第一行信息 string ReadFile(string FileName, int linenumber,int ...
  • 常用6500汉字(txt) 可用于Unity3d制作TextMesh Pro字体资源,字体中包括有ASCII字符
  • Unity读取txt文本中文不显示的问题

    千次阅读 2014-11-20 16:07:35
    Unity里面读取TXT文本的时候如果出现中文字体无法显示的时候,k
  • Debug错误显示output_log.txt 需要在打包封装EXE的时候,勾选左下角的选项。            
  • unity 读取TXT文档的内容

    千次阅读 2018-01-30 09:15:37
    using System.Collections; using System.Collections.Generic; using UnityEngine; using System.IO; using System.Text; public class LoadTxt : MonoBehaviour {  private string MyTxT;... pub
  • 利用StreamWriter/StreamReader即可...//文件保存到txt文档中 //属于System.IO命名空间 //public StreamWriter(string path, bool append, Encoding encoding)/ //路径//覆盖||追加//字符编码,默认utf-8 Stre...
  • 在游戏中经常需要动态地载入一些数据。例如让玩家定制角色外貌时,需要从数据文件读取各种身体部位的信息;或者玩家访问NPC购买装备时,需要从数据文件读取装备信息...所以本文总结一下Unity常用的读取文本数据的方法。
1 2 3 4 5 ... 20
收藏数 8,623
精华内容 3,449
关键字:

unity3d 读写txt