ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Unity Fileinfo和Directoryinfo以及File与Filestream还有Streamwriter和Streamreader

2020-10-25 22:31:26  阅读:276  来源: 互联网

标签:Streamwriter Log 文件 Filestream 写入 Directoryinfo File Debug new


简单记录一下

1.    Fileinfo和Directoryinfo  

 

对于文件和文件夹的操作,Fileinfo和Directoryinfo是对文件和文件夹进行一些属性类的操作,比如文件的创造,移动,删除,重建,是不能对文件里面具体的内容进行操作的。

FileInfo 类   fileinfo类是对于文件的操作,

 FileInfo strint = new FileInfo(str.ToString());
        if (!strint.Exists )  //如果不存在 就创建
        {
            strint.Create();
        }

下面是directoryinfo类主要是对文件夹进行操作

 DirectoryInfo dirinfo = new DirectoryInfo(@"D:\text");
        //获取其父目录;
        if (!dirinfo.Exists)
        //如果该文件夹不存在,则新建一个该文件夹
        {
            dirinfo.Create();
        }
        dirinfo.CreateSubdirectory("这是子目录");

这两个类来读取文件和文件夹属性,在这两个类中主要是用来查看文件的基本属性,创建或者移动文件,判断路径是否存在等,这两个类都是在 System.IO类下的,使用他们之前需要先using一下。fileinfo和directoryinfo类就是一般的对文件和文件夹的操作,包括读取信息啊,进行文件夹的复制和删除,创建等。这两个类都是非静态类在使用时,需要进行实例化。

 

2.   File和Filestream   

一般file类的操作对象是文本文件,而filestream类的操作是非文本文件用的比较多。如果文件太大,则用file类处理会很慢,这时用Filestream  数据流类就比较适合读文件较大的文件

首先是File 

 string str = File.ReadAllText("");
        //输入一个相对路径,返回的是一个字符串型,是一行一行的读取输出;ReadAllText
        Debug.Log(str);
        byte[] str1 = File.ReadAllBytes("");
        //这是读取文件的内容,返回的是字节形式的数组;ReadAllBytes
        foreach (var aa  in str1)
        //遍历方式读取数组中的内容;
        {
            Debug.Log(aa);
        }
        byte[] str2 = File.ReadAllBytes("图片.png");
        //读取一个图片,结果以字节的形式返回在一个数组内;ReadAllBytes
        foreach (var item in str2)
        {
            Debug.Log(item);
        }

File 的写入操作

 //  写入操作
        File.WriteAllText("写入的文件.txt", "这是写入的内容");
        //在默认输出路径下,创建一个txt文件,并且在其中写入以上内容;

        File.WriteAllLines("新的文件", new string[] { "qwe", "wer" });
        //在默认输出路径下创建一个新的txt文件,并且在其中写入数组元素;

        byte[] arr = File.ReadAllBytes("图片.png");
        //首先将图片的字节存储在字节数组中;
        File.WriteAllBytes("这是图片.png", arr);

FileStream类  读的操作

  //读的操作
        FileStream feadt = new FileStream("TextFile1.txt", FileMode.Open);
      
        //实例化数据流,对文件的操作是打开;
        byte[] arrt = new byte[1024];
        //定义一个1024字节的数组,用于数据存储;\
        while (true)
        {
            int len = feadt.Read(arr, 0, arr.Length);
            //从流中读取数据块并把它放在定义好的数组中,返回的该文件的真实长度;
            //读入缓冲区中的总字节数。如果当前的字节数没有所请求那么多,则总字节数可能小于所请求的字节数;或者如果已到达流的末尾,则为零
            if (len == 0)
            {
                Debug.Log("lol");
                break;
            }
            for (int i = 0; i < len; i++)
            {
                Debug.Log(arr[i] + " ");
            }
        }

 

 FileStream类  读写的操作

 //实例化一个读操作,目标文件是该默认输出文件的图片;
        FileStream fsread = new FileStream("123.png", FileMode.Open);

        //实例化一个写操作,这里是创建一个文件,用来写入数据;
        FileStream fswrite = new FileStream("456.png", FileMode.Create);
        //定义一个2M的字节存储空间;
        byte[] arrt = new byte[1024 * 1024 * 2];
        
        while (true)
        {
            int len = fsread.Read(arrt, 0, arr.Length);
            //实际的文件大小;
            if (len == 0)
            {
                Debug.Log("HAO D");
                break;
            }
            fswrite.Write(arr, 0, len);
            //将数组中的数据写入目标位置;
        }
        fsread.Close();
        fswrite.Close();
        //关闭数据流;

 

 

3.streamreader,这是对文件内部数据的读操作:

 

  StreamReader sread = new StreamReader("TextFile1.txt");
        //创建一个实例对象,所要读取的文件时TEXE文件;
        while (true)
        {
            string strin = sread.ReadLine();
            //该方法返回的时一行,就是执行一次返回一行;
            if (strin == null)
            {//如果读取到文件的最后,则是null
                Debug.Log("lol");
                break;
            }
          Debug.Log(str);

        }

 

 

 

4.streamweiter类,就是写入数据流:

 

  StreamWriter swrit = new StreamWriter("TEXT2.txt");
        //创建一个写数据流,写的数据流写入的时默认路径下面的文件;
        while (true)
        {
            string strin = "lol";
            //用户输入需要写的数据;
            if (strin == "lol")
            { break; }
            swrit.Write(str);

        }
        swrit.Close();

 

 

 

 有需要会在补充

标签:Streamwriter,Log,文件,Filestream,写入,Directoryinfo,File,Debug,new
来源: https://www.cnblogs.com/qq2351194611/p/13875677.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有