C# 编程指南:文件读写和流操作

在C#中,文件读写和流操作是进行文件处理和数据传输的常见任务。

部分
1
文件读取(File Reading)
C#提供了多种方式来读取文件,包括使用StreamReader、File和FileStream等类。
StreamReader类用于从文件中读取文本数据。
// 使用StreamReader读取文件示例代码

string filePath = "path/to/file.txt";

using (StreamReader reader = new StreamReader(filePath))
{
    string line;
    while ((line = reader.ReadLine()) != null)
    {
        Console.WriteLine(line);
    }
}

在上面的示例中,我们使用StreamReader类打开并读取文件中的文本数据。通过使用while循环和ReadLine方法,逐行读取文件内容并输出到控制台。

部分
2
文件写入(File Writing)
C#提供了多种方式来写入文件,包括使用StreamWriter、File和FileStream等类。
StreamWriter类用于将文本数据写入文件。
// 使用StreamWriter写入文件示例代码

string filePath = "path/to/file.txt";

using (StreamWriter writer = new StreamWriter(filePath))
{
    writer.WriteLine("Hello, World!");
    writer.WriteLine("This is a sample text.");
}

在上面的示例中,我们使用StreamWriter类创建并打开一个文件,并使用WriteLine方法将文本数据写入文件。通过使用using语句,可以在代码块执行完毕后自动关闭文件。

部分
3
二进制文件读写(Binary File Reading/Writing)
除了文本文件,C#还支持对二进制文件进行读写操作,可以使用BinaryReader和BinaryWriter类进行处理。
// 使用BinaryReader读取二进制文件示例代码

string filePath = "path/to/file.bin";

using (BinaryReader reader = new BinaryReader(File.Open(filePath, FileMode.Open)))
{
    int intValue = reader.ReadInt32();
    double doubleValue = reader.ReadDouble();
    byte[] byteArray = reader.ReadBytes(10);
}

在上面的示例中,我们使用BinaryReader类打开并读取一个二进制文件。通过调用ReadInt32、ReadDouble和ReadBytes等方法,可以按照特定的数据类型读取文件中的数据。

// 使用BinaryWriter写入二进制文件示例代码

string filePath = "path/to/file.bin";

using (BinaryWriter writer = new BinaryWriter(File.Open(filePath, FileMode.Create)))
{
    int intValue = 10;
    double doubleValue = 3.14;
    byte[] byteArray = { 1, 2, 3, 4, 5 };

    writer.Write(intValue);
    writer.Write(doubleValue);
    writer.Write(byteArray);
}

在上面的示例中,我们使用BinaryWriter类创建并打开一个二进制文件,并使用Write方法将不同类型的数据写入文件。

部分
4
流操作(Stream Operations)
流(Stream)是一种用于读取和写入数据的抽象概念,C#中有多种流类可用于处理不同类型的数据。
FileStream类用于操作文件流,MemoryStream类用于操作内存中的数据流,NetworkStream类用于网络数据传输等。
// 使用FileStream进行流操作示例代码

string filePath = "path/to/file.txt";

using (FileStream fileStream = new FileStream(filePath, FileMode.Open))
{
    byte[] buffer = new byte[1024];
    int bytesRead;
    while ((bytesRead = fileStream.Read(buffer, 0, buffer.Length)) > 0)
    {
        // 处理读取的数据
    }
}

在上面的示例中,我们使用FileStream类打开一个文件流,并使用Read方法从流中读取数据到缓冲区。通过循环读取的方式,可以逐步处理大文件而不会一次性加载整个文件到内存中。

    目录

  • 1.
    文件读取(File Reading)
  • 2.
    文件写入(File Writing)
  • 3.
    二进制文件读写(Binary File Reading/Writing)
  • 4.
    流操作(Stream Operations)