文件系统对应类 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(抽象类)
流涉及三个基本操作:
- 可以读取流(Read)。读取是从流到数据结构(如字节数组)的数据传输。
- 可以写入流(Write)。写入是从数据结构到流的数据传输。
- 流可以支持查找(Seek、Position)。查找是对流内的当前位置进行的查询和修改。查找功能取决于流具有的后备存储区类型。例如,网络流没有当前位置的统一概念,因此一般不支持查找。
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