C#高级编程:IO和序列化

发布于:2025-05-15 ⋅ 阅读:(14) ⋅ 点赞:(0)

在 C# 编程中,输入输出(IO)和序列化是两个至关重要的概念,它们为数据的存储、读取以及在不同环境间的传输提供了强大的支持。无论是开发小型应用程序,还是构建复杂的企业级系统,深入理解并熟练运用 IO 和序列化技术都是必不可少的。​

一、C# 中的 IO 基础​

1、文件流(FileStream)​

文件流是 C# 中用于处理文件 IO 的基础类,它提供了一种以字节为单位读写文件的方式。通过 FileStream 类,我们可以打开、读取、写入和关闭文件。

// 创建一个FileStream对象用于写入文件
using (FileStream fs = new FileStream("test.txt", FileMode.Create))
{
   
    string content = "Hello, World!";
    byte[] data = Encoding.UTF8.GetBytes(content);
    fs.Write(data, 0, data.Length);
}

// 创建一个FileStream对象用于读取文件
using (FileStream fs = new FileStream("test.txt", FileMode.Open))
{
   
    byte[] buffer = new byte[1024];
    int bytesRead;
    while ((bytesRead = fs.Read(buffer, 0, buffer.Length)) > 0)
    {
   
        string readContent = Encoding.UTF8.GetString(buffer, 0, bytesRead);
        Console.Write(readContent);
    }
}

在上述代码中,FileMode.Create表示如果文件不存在则创建新文件,如果存在则覆盖原有内容;FileMode.Open用于打开已有的文件进行读取操作。使用using语句可以确保文件流在使用完毕后被正确释放资源。​

2、流读取器和写入器(StreamReader 和 StreamWriter)​

虽然 FileStream 提供了字节级别的操作,但在处理文本文件时,StreamReader 和 StreamWriter 更为方便,它们可以直接处理字符串。

// 使用StreamWriter写入文本文件
using (StreamWriter sw = new StreamWriter("test.txt"))
{
   
    sw.WriteLine("This is a line of text.");
    sw.WriteLine("Another line.");
}

// 使用StreamReader读取文本文件
using (StreamReader sr = new StreamReader("test.txt"))
{
   
    string line;
    while ((line = sr.ReadLine()) !=