首页 > 编程笔记 > C#笔记 阅读:19

C# StreamWriter和StreamReader类的用法(附带实例)

C# 程序中,使用 I/O 流操作文本文件时主要借助 StreamWriter 类和 StreamReader 类,下面对这两个类进行详细讲解。

C# StreamWriter类

StreamWriter 类是专门用来处理文本文件的类,可以方便地向文本文件中写入字符串,同时它也负责重要的转换,以及处理向 FileStream 对象写入的工作。

StreamWriter 类的常用属性及说明如下表所示:

表:StreamWriter 类的常用属性及说明
属性 说明
Encoding 获取将输出写入其中的 Encoding
FormatProvider 获取控制格式设置的对象
NewLine 获取或设置由当前 TextWriter 使用的行结束符字符串

StreamWriter 类的常用方法及说明如下表所示:

表:StreamWriter 类的常用方法及说明
方法 说明
Close 关闭当前的 StringWriter 和基础流
Write 写入 StringWriter 的此实例中
WriteLine 写入重载参数指定的某些数据,后跟行结束符

C# StreamReader类

StreamReader 类是专门用来读取文本文件的类。StreamReader 不仅可以从底层 Stream 对象创建 StreamR eader 对象的实例,还能指定编码规范参数。创建 StreamReader 对象后,它提供了许多用于读取和浏览字符数据的方法。

StreamReader 类的常用方法及说明如下表所示:

表:StreamReader类的常用方法及说明
方法 说明
Close 关闭 StringReader
Read 读取输入字符串中的下一个字符或下一组字符
ReadBlock 从当前流中读取最大 count 的字符,并从 index 开始将该数据写入 buffer
ReadLine 从基础字符串中读取一行
ReadToEnd 将整个流或从流的当前位置到流的结尾作为字符串读取

【实例】编程实现向文本文件中写入和读取名人名言。程序开发步骤如下:
1) 新建一个 Windows 应用程序,默认窗体为 Form1.cs。

2) 在 Form1 窗体中,添加一个 SaveFileDialog 控件、一个 OpenFileDialog 控件、一个 TextBox 控件和两个 Button 控件:
3) 分别双击“写入”和“读取”按钮,触发它们的 Click 事件,在这两个事件中,分别使用 StreamWriter 类和 StreamReader 类向文本文件中写入和读取内容,代码如下:
private void button1_Click(object sender, EventArgs e)
{
    if (textBox1.Text == string.Empty)
    {
        MessageBox.Show("要写入的文件内容不能为空");
    }
    else
    {
        saveFileDialog1.Filter = "文本文件(*.txt)|*.txt";  // 设置保存文件的格式
        if (saveFileDialog1.ShowDialog() == DialogResult.OK)
        {
            // 使用“另存为”对话框中输入的文件名实例化 StreamWriter 对象
            StreamWriter sw = new StreamWriter(saveFileDialog1.FileName, true);
            sw.WriteLine(textBox1.Text);  // 向创建的文件中写入内容
            sw.Close();  // 关闭当前文件写入流
        }
    }
}

private void button2_Click(object sender, EventArgs e)
{
    openFileDialog1.Filter = "文本文件(*.txt)|*.txt";  // 设置打开文件的格式
    if (openFileDialog1.ShowDialog() == DialogResult.OK)
    {
        textBox1.Text = string.Empty;
        // 使用“打开”对话框中选择的文件实例化 StreamReader 对象
        StreamReader sr = new StreamReader(openFileDialog1.FileName);
        // 调用 ReadToEnd 方法读取选中文件的全部内容
        textBox1.Text = sr.ReadToEnd();
        sr.Close();  // 关闭当前文件读取流
    }
}
运行程序,单击“写入”按钮,弹出“另存为”对话框,输入要保存的文件名,单击“保存”按钮,将文本框中的内容写入文件中;单击“读取”按钮,弹出“打开”对话框,选择要读取的文件,单击“打开”按钮,将选择的文件中的内容显示在文本框中。

相关文章