简单记录一下
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();
有需要会在补充