📜  c# 读取文件流 - C# (1)

📅  最后修改于: 2023-12-03 14:59:43.637000             🧑  作者: Mango

C# 读取文件流

概述

在 C# 中,读取文件流是一个非常常见的任务。文件流可以是文本文件、二进制文件或其他类型的文件,这取决于你的实际需求。本文将介绍如何使用 C# 读取文件流并处理文件内容。

使用 FileStream 类读取文件流

在 C# 中,可以使用 FileStream 类来读取文件流。FileStream 类提供了一个构造函数,该构造函数接受文件名和打开方式作为参数。在打开文件时,需要指定打开文件的方式。通常,我们使用 FileMode.Open 和 FileAccess.Read 这两个参数来读取文件。

string fileName = @"C:\Users\username\Desktop\example.txt";
using (FileStream fs = new FileStream(fileName, FileMode.Open, FileAccess.Read))
{
    // 处理文件内容
}
读取文本文件流

读取文本文件流时,可以使用 StreamReader 类。StreamReader 类提供了一个构造函数,该构造函数接受一个 FileStream 类实例作为参数。在创建 StreamReader 实例时,需要指定编码方式。如果你不指定编码方式,StreamReader 类会使用默认编码方式。

string fileName = @"C:\Users\username\Desktop\example.txt";
using (FileStream fs = new FileStream(fileName, FileMode.Open, FileAccess.Read))
using (StreamReader sr = new StreamReader(fs, Encoding.UTF8))
{
    string line;
    while ((line = sr.ReadLine()) != null)
    {
        // 处理每一行文本内容
    }
}
读取二进制文件流

读取二进制文件流时,可以使用 BinaryReader 类。BinaryReader 类提供了多种读取数据的方法,包括 ReadBoolean、ReadByte、ReadInt16 等等。

string fileName = @"C:\Users\username\Desktop\example.bin";
using (FileStream fs = new FileStream(fileName, FileMode.Open, FileAccess.Read))
using (BinaryReader br = new BinaryReader(fs))
{
    byte[] buffer = new byte[1024];
    int count = 0;
    while ((count = br.Read(buffer, 0, buffer.Length)) != 0)
    {
        // 处理读取到的二进制数据
    }
}
总结

使用 C# 读取文件流非常简单。通过 FileStream 类、StreamReader 类和 BinaryReader 类,我们可以轻松地读取文本文件流和二进制文件流。在实际使用中,根据实际需求,选择合适的读取方式,可以提高代码的效率和可读性。