纳金网

标题: IOS下文件保存和读取 [打印本页]

作者: 烟雨    时间: 2015-8-29 02:34
标题: IOS下文件保存和读取
1、加import System.IO; //(JS写的)
2、定义如下变量:
                  
        private var fileName1 : String;
         
          private var fs1 : FileStream;
         
          private var sr1: StreamReader;
        Start方法:
                  

          function Start () {
         
          // fileName1 = Application.dataPath + “/Resource/” + “test.txt”; // pc test path fileName1 =

ChorusBinding.libraryPath() + “/test.txt”;//iphone真机路径
         
          fs1 = new FileStream(fileName1, FileMode.Open); sr1 = new StreamReader(fs1);
         
          //这里我做了一些操作,如读txt中的某一行LineStringInOneFile(2);//读第二行的文字
         
          ... //省略若干行
         
          fs1.Close();//关闭文件,这个不要忘记,以免出现内存问题
         
          }
说明:ChorusBinding.libraryPath()方法是用objective-c写的获取library目录。oc代码如下:
                  

         -(NSString *)GetLibraryPathToString
         
          {
         
          //    NSFileManager *fileManager = [NSFileManager defaultManager];
         
          //    NSError *error;
         
          NSArray *paths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);
         
          NSString *libraryDirectory = [paths objectAtIndex:0];
         
          return libraryDirectory;
         
          }
4、 对于调用OC的方法,在unity3d中用[DllImport(“__Internal”)],具体代码见下面(C#写的)
                  

          [DllImport(“__Internal”)]
         
          private static extern void _copyModelConfigFiles();
         
          public static void copyModelConfigFiles() {
         
          _copyModelConfigFiles();
         
          }
       

5、读txt
                  

          //获得txt文件的总行数
         
          function ReadFile(filepathIncludingFileName : String) {
         
          var sr: StreamReader = new File.OpenText(filepathIncludingFileName);
         
          var input : String = “”; //读到的那一行的字符串
         
          var lineCount : int = 0;//总行数
         
          while (true) {
         
          input = sr.ReadLine();
         
          if (input == null) { break; }
         
          lineCount++;
         
          }
         
          sr.Close();
         
          }
         
          //返回某一行的字符串,i为传的行数,是第一个配置文件test.txt
         
          function LineStringInOneFile(i:int) {
         
          var lineContent : String=“”;
         
          var tempLine : int = 0;
         
          while(tempLine
         
          sr1.BaseStream.Seek(0, SeekOrigin.Begin);//重新读取第一行
         
          lineContent = sr1.ReadLine();
         
          if (lineContent == null) { break; }
         
          tempLine ++;
         
          }
         
          sr1.ReadToEnd();
         
          return lineContent;
         
          }






欢迎光临 纳金网 (http://go.narkii.com/club/) Powered by Discuz! X2.5