📅  最后修改于: 2023-12-03 15:14:27.548000             🧑  作者: Mango
System.IO是C#中非常重要的命名空间之一,它提供了许多用于进行输入/输出操作的类和接口。在本文中,我们将深入探讨System.IO命名空间及其各种类型的作用。
在开始本文之前,需要先对以下概念有所了解:
以下是System.IO命名空间中的一些主要类型:
File类提供了许多与文件系统交互的静态方法,例如创建、读取、写入、复制、移动和删除文件等操作。
例如,使用以下代码可以创建一个新文件:
string filePath = @"C:\temp\example.txt";
File.Create(filePath);
Directory类提供了许多与目录系统交互的静态方法,例如创建、移动、重命名和删除目录等操作。与File类类似,它也提供了许多静态方法,可以帮助我们执行与目录相关的操作。
例如,我们可以使用以下代码创建一个新目录:
string directoryPath = @"C:\temp\example";
Directory.CreateDirectory(directoryPath);
FileInfo类继承自FileSystemInfo类,用于表示一个文件,并提供了许多与文件相关的实例方法和属性。
例如,我们可以使用以下代码获取文件的最后修改时间:
string filePath = @"C:\temp\example.txt";
FileInfo fileInfo = new FileInfo(filePath);
DateTime lastModified = fileInfo.LastWriteTime;
DirectoryInfo类继承自FileSystemInfo类,用于表示一个目录,并提供了许多与目录相关的实例方法和属性。
例如,我们可以使用以下代码获取目录中的文件数:
string directoryPath = @"C:\temp\example";
DirectoryInfo directoryInfo = new DirectoryInfo(directoryPath);
int fileCount = directoryInfo.GetFiles().Length;
FileStream类继承自Stream类,用于从文件读取数据或向文件写入数据。
例如,我们可以使用以下代码打开一个文件,从中读取数据,并将其转换为字符串:
string filePath = @"C:\temp\example.txt";
using (FileStream fileStream = new FileStream(filePath, FileMode.Open))
{
byte[] buffer = new byte[fileStream.Length];
fileStream.Read(buffer, 0, buffer.Length);
string text = Encoding.UTF8.GetString(buffer);
}
StreamReader和StreamWriter类都继承自TextWriter和TextReader类,用于从流中读取文本或将文本写入流中。
例如,我们可以使用以下代码打开一个文件,从中读取数据,并将其逐行输出到控制台:
string filePath = @"C:\temp\example.txt";
using (StreamReader reader = new StreamReader(filePath))
{
string line;
while ((line = reader.ReadLine()) != null)
{
Console.WriteLine(line);
}
}
BinaryReader和BinaryWriter类都继承自Stream类,用于从流中读取二进制数据或将二进制数据写入流中。
例如,我们可以使用以下代码打开一个文件,从中读取数据,并将其转换为一个整数:
string filePath = @"C:\temp\example.bin";
using (FileStream fileStream = new FileStream(filePath, FileMode.Open))
using (BinaryReader reader = new BinaryReader(fileStream))
{
int value = reader.ReadInt32();
}
System.IO命名空间提供了许多用于进行输入/输出操作的类和接口。在本文中,我们深入了解了File、Directory、FileInfo、DirectoryInfo、FileStream、StreamReader、StreamWriter、BinaryReader和BinaryWriter这些类型的作用及其示例代码。了解这些类型将使您在处理文件系统时更加方便。