C# StreamWriter和StreamReader类的用法(附带实例)
C# 程序中,使用 I/O 流操作文本文件时主要借助 StreamWriter 类和 StreamReader 类,下面对这两个类进行详细讲解。
StreamWriter 类的常用属性及说明如下表所示:
StreamWriter 类的常用方法及说明如下表所示:
StreamReader 类的常用方法及说明如下表所示:
【实例】编程实现向文本文件中写入和读取名人名言。程序开发步骤如下:
1) 新建一个 Windows 应用程序,默认窗体为 Form1.cs。
2) 在 Form1 窗体中,添加一个 SaveFileDialog 控件、一个 OpenFileDialog 控件、一个 TextBox 控件和两个 Button 控件:
3) 分别双击“写入”和“读取”按钮,触发它们的 Click 事件,在这两个事件中,分别使用 StreamWriter 类和 StreamReader 类向文本文件中写入和读取内容,代码如下:
C# StreamWriter类
StreamWriter 类是专门用来处理文本文件的类,可以方便地向文本文件中写入字符串,同时它也负责重要的转换,以及处理向 FileStream 对象写入的工作。StreamWriter 类的常用属性及说明如下表所示:
属性 | 说明 |
---|---|
Encoding | 获取将输出写入其中的 Encoding |
FormatProvider | 获取控制格式设置的对象 |
NewLine | 获取或设置由当前 TextWriter 使用的行结束符字符串 |
StreamWriter 类的常用方法及说明如下表所示:
方法 | 说明 |
---|---|
Close | 关闭当前的 StringWriter 和基础流 |
Write | 写入 StringWriter 的此实例中 |
WriteLine | 写入重载参数指定的某些数据,后跟行结束符 |
C# StreamReader类
StreamReader 类是专门用来读取文本文件的类。StreamReader 不仅可以从底层 Stream 对象创建 StreamR eader 对象的实例,还能指定编码规范参数。创建 StreamReader 对象后,它提供了许多用于读取和浏览字符数据的方法。StreamReader 类的常用方法及说明如下表所示:
方法 | 说明 |
---|---|
Close | 关闭 StringReader |
Read | 读取输入字符串中的下一个字符或下一组字符 |
ReadBlock | 从当前流中读取最大 count 的字符,并从 index 开始将该数据写入 buffer |
ReadLine | 从基础字符串中读取一行 |
ReadToEnd | 将整个流或从流的当前位置到流的结尾作为字符串读取 |
【实例】编程实现向文本文件中写入和读取名人名言。程序开发步骤如下:
1) 新建一个 Windows 应用程序,默认窗体为 Form1.cs。
2) 在 Form1 窗体中,添加一个 SaveFileDialog 控件、一个 OpenFileDialog 控件、一个 TextBox 控件和两个 Button 控件:
- SaveFileDialog 控件用来显示“另存为”对话框;
- Open FileDialog 控件用来显示“打开”对话框;
- 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(); // 关闭当前文件读取流 } }运行程序,单击“写入”按钮,弹出“另存为”对话框,输入要保存的文件名,单击“保存”按钮,将文本框中的内容写入文件中;单击“读取”按钮,弹出“打开”对话框,选择要读取的文件,单击“打开”按钮,将选择的文件中的内容显示在文本框中。