C#的IO操作主要是针对文件夹和文件的读取和写入操作,下面我们来学习一下相关操作的类。
获取文件信息
Directory和DirectoryInfo
两个类的功能基本相同,区别如下:
- 前者继承System.Object,后者继承抽象类FileSystemInfo;
- 前者是静态类,后者是非静态类,需要new创建实例;
- 前者返回的类型是简单字符串,后者返回的是强类型如FileInfo;
File和FileInfo
区别和Directory一致,下面给出帮助文档,具体的使用方法可以查看帮助:
https://msdn.microsoft.com/zh-cn/library/system.io(v=vs.110).aspx
读取文件
下面给出一个简单的读取文件的例子:
1 using System; 2 using System.IO; 3 4 namespace Study 5 { 6 class Program 7 { 8 static void Main(string[] args) 9 { 10 if (!File.Exists("test.txt")) 11 { 12 Console.WriteLine("文件不存在!"); 13 Console.Read(); 14 return; 15 } 16 17 using (StreamReader streamReader = File.OpenText("test.txt")) 18 { 19 string line; 20 while ((line = streamReader.ReadLine()) != null) 21 { 22 Console.WriteLine(line); 23 } 24 streamReader.Close(); 25 } 26 27 Console.Read(); 28 } 29 } 30 }
写入文件
下面给出一个简单的写入文件的例子:
1 using System; 2 using System.IO; 3 4 namespace Study 5 { 6 class Program 7 { 8 static void Main(string[] args) 9 { 10 using (FileStream fileStream = File.Open("test.txt", FileMode.OpenOrCreate)) 11 { 12 TextWriter textWriter = new StreamWriter(fileStream); 13 textWriter.WriteLine("Hello Li Lei,"); 14 textWriter.WriteLine("I`m Han Meimei."); 15 textWriter.Flush(); 16 17 fileStream.Close(); 18 } 19 20 Console.Read(); 21 } 22 } 23 }
FileHelper
为了简化文件的读写操作,我写了一个工具类放到我的开源工程下,有需要得朋友可以直接使用: