C# 文件的输入与输出

在本章中,我们将探讨如何使用C#进行文件的读取和写入操作。这些操作对于处理各种数据文件、日志记录或用户数据非常有用。

文件流基础

文件流是用于读取和写入文件的数据通道。C# 提供了多种类来处理文件流,其中最常用的是 FileStream 类。FileStream 允许你以二进制或文本形式读取和写入文件。

创建文件流

首先,让我们看一个简单的例子,演示如何创建一个文件流并写入一些文本:

-- -------------------- ---- -------
----- -------
----- ----------

----- -------
-
    ------ ---- ------
    -
        -- ------
        ------ -------- - --------------

        -- -- ---------- ----
        ----- ----------- -- - --- -------------------- -----------------
        -
            -- ----
            ------ ---- - --- --------------------------------- -- ---- ---- -- --- --------
            -------------- -- -------------
        -

        ----------------------- ------- --- ------- ----------------
    -
-

在这个例子中,我们使用 FileStream 的构造函数来创建一个新文件,并通过 Write 方法将文本写入文件。UTF8Encoding 用于将字符串转换为字节,以便写入文件。

读取文件

接下来,我们看看如何从文件中读取数据:

-- -------------------- ---- -------
----- -------
----- ----------

----- -------
-
    ------ ---- ------
    -
        ------ -------- - --------------

        -- -- ---------- ----
        ----- ----------- -- - --- -------------------- ---------------
        -
            -- ----------------
            ------ ---- - --- ----------------
            ------------- -- -------------

            -- ---------
            ------ ---- - ------------------------------------------
            ------------------------
        -
    -
-

这个例子展示了如何打开已存在的文件,读取其中的内容,并将其转换回字符串显示出来。

使用 StreamReader 和 StreamWriter

虽然 FileStream 提供了基本的文件读写功能,但有时使用 StreamReaderStreamWriter 类会更方便。这两个类提供了更简洁的方式来处理文本文件。

使用 StreamWriter 写入文件

-- -------------------- ---- -------
----- -------
----- ----------

----- -------
-
    ------ ---- ------
    -
        ------ -------- - --------------

        -- -- ------------ ---------
        ----- ------------- -- - --- -----------------------
        -
            -------------------- ---------
            ------------------ -- ------- --------
        -

        ----------------------- ------- ----------------
    -
-

这里,我们使用 StreamWriter 来写入文本到文件中。WriteLine 方法可以自动添加换行符,使得每行文本都独立。

使用 StreamReader 读取文件

-- -------------------- ---- -------
----- -------
----- ----------

----- -------
-
    ------ ---- ------
    -
        ------ -------- - --------------

        -- -- ------------ ----
        ----- ------------- -- - --- -----------------------
        -
            ------ -----
            ----- ------ - -------------- -- -----
            -
                ------------------------
            -
        -
    -
-

在上面的例子中,我们使用 StreamReader 来逐行读取文件的内容,并将其打印到控制台。

异步文件操作

对于大型文件或需要长时间运行的操作,异步编程模式(Async Programming Pattern)可以提高程序的响应性和性能。

异步写入文件

-- -------------------- ---- -------
----- -------
----- ----------
----- -----------------------

----- -------
-
    ------ ----- ---- ------------- -----
    -
        ------ -------- - --------------

        -- ----------
        ----- -------------------------------- ------- ---------

        ----------------------- ------- ------------------
    -
-

WriteAllTextAsync 是一个便捷的方法,用于异步地将整个文本写入文件。

异步读取文件

-- -------------------- ---- -------
----- -------
----- ----------
----- -----------------------

----- -------
-
    ------ ----- ---- ------------- -----
    -
        ------ -------- - --------------

        -- ----------
        ------ ------- - ----- --------------------------------
        ---------------------------
    -
-

同样地,ReadAllTextAsync 可以异步地读取整个文件的内容。

总结

在这一章中,我们学习了如何使用C#进行文件的读取和写入操作。我们从基本的 FileStream 类开始,然后介绍了更高级的 StreamReaderStreamWriter 类,以及如何使用它们来进行异步文件操作。这些技术在处理文件时非常实用,可以帮助你高效地管理数据。

上一篇: C# 异常处理
纠错
反馈