C#编程:文本文件的读取、修改与打印预览

需积分: 9 1 下载量 190 浏览量 更新于2024-10-16 收藏 27KB PDF 举报
"本文主要介绍了在C#编程环境中处理文本文件的方法,包括读取文本文件内容、修改文本文件内容以及实现对读取后的文本文件进行打印预览和打印。" 在C#中处理文本文件是程序员必备的技能之一,尤其在涉及到数据存储和日志记录等场景时。本文将详细介绍如何利用C#进行文本文件操作。 首先,我们来看如何读取文本文件内容。在C#中,我们可以使用`System.IO`命名空间中的`StreamReader`类来实现这一功能。例如,以下代码展示了如何读取位于"C:\file.txt"的文本文件并将其内容显示在一个`RichTextBox`控件中: ```csharp FileStream fs = new FileStream("C:\\file.txt", FileMode.Open, FileAccess.Read); StreamReader m_streamReader = new StreamReader(fs); // 将文件内容逐行读入richtextbox1 m_streamReader.BaseStream.Seek(0, SeekOrigin.Begin); this.richTextBox1.Text = ""; string strLine = m_streamReader.ReadLine(); while (strLine != null) { this.richTextBox1.Text += strLine + "\n"; strLine = m_streamReader.ReadLine(); } // 关闭StreamReader m_streamReader.Close(); ``` 这段代码首先创建了一个`FileStream`对象,然后使用它初始化一个`StreamReader`实例。`StreamReader`的`ReadLine()`方法用于按行读取文本文件的内容。读取完成后,确保使用`Close()`方法关闭`StreamReader`以释放资源。 接下来,我们讨论如何修改文本文件的内容。在C#中,你可以通过改变`RichTextBox`控件中的文本,然后将这些更改保存回文件来实现。例如,如果用户在`RichTextBox`中进行了编辑,点击“另存为”按钮,可以使用以下代码将新的内容写回文件: ```csharp // 获取richtextbox1的新内容 string newContent = this.richTextBox1.Text; // 创建或覆盖文件,写入新内容 StreamWriter sw = new StreamWriter("C:\\file.txt"); sw.Write(newContent); sw.Close(); ``` 这段代码创建了一个`StreamWriter`实例,然后将`RichTextBox`中的新内容写入文件,最后关闭`StreamWriter`。 至于文本文件的打印预览和打印功能,C#提供了`PrintDocument`类,它可以与`PrintPreviewDialog`和`PrintDialog`一起使用,允许用户预览和打印文本文件。下面是一个简单的示例: ```csharp private void printButton_Click(object sender, EventArgs e) { PrintDocument pd = new PrintDocument(); pd.PrintPage += new PrintPageEventHandler(this.OnPrintPage); if (printDialog1.ShowDialog() == DialogResult.OK) { pd.Print(); } } private void OnPrintPage(object sender, PrintPageEventArgs ev) { // 在这里设置打印机的页面设置,如字体、大小等 Font font = new Font("Arial", 12); StringFormat format = new StringFormat(); format.Alignment = StringAlignment.Center; format.LineAlignment = StringAlignment.Center; // 从richtextbox1获取内容并打印 ev.Graphics.DrawString(this.richTextBox1.Text, font, Brushes.Black, ev.MarginBounds, format); } ``` 这段代码在点击“打印”按钮时,会触发`PrintPage`事件,通过`Graphics`对象在页面上绘制`RichTextBox`的内容,从而实现打印。 C#提供了强大的文本文件处理能力,无论是读取、修改还是打印,都可以通过`System.IO`命名空间中的类轻松实现。通过熟练掌握这些方法,开发者能够高效地处理各种文本文件任务。