unity中文件与IO

文件系统对应类 System.IO

1.DriveInfo : 有关驱动器信息的类

主要方法:GetDrives 用于取得本计算机中所有驱动器信息对象

2.File: 有关对文件整体操作及内容读写的类

        整体操作:

        Create :创建文件

        Delete: 删除文件

        Move:移动文件(剪切)

        Copy: 复制文件

        Exists: 检查设备中是否有该文件

读写文件:

        ReadAllText : 一次将文件中所有内容读入内存,并转为字符串

//一次将文件中所有内容读入内存,并转为字符串
print(File.ReadAllText(path));

        ReadAllLines: 一次将文件中所有内容读入内存,转为字符串,将字符串按行形成一个字符串数组

//ReadAllLines: 一次将文件中所有内容读入内存,转为字符串,将字符串按行形成一个字符串数组
foreach (string line in File.ReadAllLines(path))
   {
      print(line);
   }

        ReadLines: 并不会主动文件中的内容,只有再迭代时才读一行,每迭代一次向下读一行.

        ReadAllBytes: 将文件中的内容一次读入内存,以字节数组的方式保存

        WriteAllText: 一次写入大段文本。

//一次写入大段文本。
File.WriteAllText(path,"hello world");

        WriteAllLines: 每写一行之后写一个换行符.

 //每写一行之后写一个换行符.
 File.WriteAllLines(path, new string[] { "1463818337", "@", "qq.com" });

        WriteAllBytes: 一次写入大量字节

3.FileInfo : 有关对文件整体操作及内容读写的类

        与File不同的地方:比File类多一个Length属性,通过该属性可以了解一个文件所占有字节

4.Directory :有关对文件夹整体操作的类

 常用方法:
        CreateDirectory:创建文件夹
        Delete:删除文件夹
        Move:移动文件夹(不能跨驱动器移动)
        GetFiles: 取得文件夹下所有的文件名
        GetDirectoies:取得文件夹下所有的子文件夹名
        Exists:检查某文件夹在设备中是否存在


DirectoryInfo 功能同Directory,只是所有成员为实例成员 :

         eg:DirectoryInfo info = new DirectoryInfo(path);

5.Path类,专用于对路径字符串的处理

常用方法:

        GetFileName :取得文件名及扩展名

        GetFileNameWithOutExtension: 取得文件名不要扩展名

        GetDirectoryName : 取得路径中目录的名称

        Combine: 将多个字符串合并成为一个路径

练习:

using UnityEngine;
using System.Collections;
using System.IO;

public class Test : MonoBehaviour
{
    private string filePath = @"D:/Directory/file01.txt";
    //练习 :
    private void Start()
    {
        //1.在D盘创建一个名字为Directory的文件夹,并创建一个file01.txt文件。
        string dirPath = Path.GetDirectoryName(filePath);
        if (!Directory.Exists(dirPath))
            Directory.CreateDirectory(dirPath);
        if (!File.Exists(filePath))
            File.Create(filePath);

        //2.(先在D盘放一个file02.txt文件)判断若存在,复制到D盘Directory文件夹下。
        if (File.Exists(@"D:/file02.txt"))
            File.Copy(@"D:/file02.txt", @"D:/Directory/file02.txt", true);

        //3.(先在D盘放一个Directory02文件夹,并创建几个子文件夹)
        //通过脚本打印出D盘Directory02文件夹下所有子文件夹的目录名
        string[] path = Directory.GetDirectories(@"D:/Directory02");
        foreach (var dirName in path)
        {
            print(dirName);
        }
    }
}

数据流 IO

Stream(抽象类)

流涉及三个基本操作:

  1. 可以读取流(Read)。读取是从流到数据结构(如字节数组)的数据传输。
  2. 可以写入流(Write)。写入是从数据结构到流的数据传输。
  3. 流可以支持查找(SeekPosition)。查找是对流内的当前位置进行的查询和修改。查找功能取决于流具有的后备存储区类型。例如,网络流没有当前位置的统一概念,因此一般不支持查找。
     private string ReadFunc(string path)
        {
            Stream stream = new FileStream(path, FileMode.OpenOrCreate);
            byte[] data=new byte[stream.Length];
            stream.Read(data, 0, (int)stream.Length);  //数据的读
    
            stream.Write(data, 0, data.Length);     //写数据
            stream.Flush(); //刷新内容
            //流使用完后要关闭  否则资源不会释放
            stream.Close();
            //解码
            return Encoding.UTF8.GetString(data);
        }
FileStream   FileMode(Stream的派生类)  
StreamReader:流内容读取器

         用于对数据流或本地文件简单的以字符的方式进行读取,

         常用方法:ReadLine Read ReadToEnd

StreamWriter:将内容写入流,写入器

         用于对数据流或本地文件简单的以字符的方式进行写入,

         常用方法:Write WriteLine

  • 34
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值