如何读取文本文件内容:
在本文介绍的程序中,是把读取的文本文件,用一个richTextBox组件显示出来。要读取文本文件,必须使用到"StreamReader"类,这个类是由名字空间"System.IO"中定义的。通过"StreamReader"类的"ReadLine ( )"方法,就可以读取打开数据流当前行的数据了。下面代码实现的功能就是读取"C:\file.txt"并在richTextBox1组件中显示出来:
FileStream fs = new FileStream ( "C:\\file.txt"  , FileMode.Open , FileAccess.Read ) ;
    StreamReader m_streamReader = new StreamReader ( fs ) ;
  //使用StreamReader类来读取文件
  m_streamReader.BaseStream.Seek ( 0 , SeekOrigin.Begin ) ;
    // 从数据流中读取每一行,直到文件的最后一行,并在richTextBox1中显示出内容
    this.richTextBox1.Text = "" ;
    string strLine = m_streamReader.ReadLine ( ) ;
    while ( strLine != null )
    {
      this.richTextBox1.Text += strLine + "\n" ;
      strLine = m_streamReader.ReadLine ( ) ;
    }
    //关闭此StreamReader对象
    m_streamReader.Close ( ) ;

如何改变文本文件中数据内容:

在本文介绍的程序中,改变文本文件数据内容的功能是通过改变richTextBox1中的内容来实现的,当richTextBox1这的内容改变后,按动"另存为",就把richTextBox1中内容存储到指定的文本文件中了。要想改变文本文件内容,要使用到"StreamWriter"类,这个类和"StreamReader"一样,都是由"System.IO"名字空间来定义的。通过"StreamWriter"类的"Write ( )"方法,就可以轻松实现文本文件内容的更改了。下面代码的功能是:如果"C"盘存在"file.txt",则把richTextBox1中的内容写入到"file.txt"中,如果不存在,则创建此文件,然后在写入文本数据。

//创建一个文件流,用以写入或者创建一个StreamWriter
  FileStream fs = new FileStream ( "C\\file.txt"  , FileMode.OpenOrCreate , FileAccess.Write ) ;
    StreamWriter m_streamWriter = new StreamWriter ( fs ) ;
    m_streamWriter.Flush ( ) ;
    // 使用StreamWriter来往文件中写入内容
    m_streamWriter.BaseStream.Seek ( 0 , SeekOrigin.Begin ) ;
    // 把richTextBox1中的内容写入文件
    m_streamWriter.Write ( richTextBox1.Text ) ;
    //关闭此文件
    m_streamWriter.Flush ( ) ;
    m_streamWriter.Close ( ) ;

如何实现打印预览:

打印预览是通过打印预览对话框来实现的,实现对读取得文本文件的打印预览,最为重要的就是要通知打印预览对话框所要预览的文件的内容。下面代码就是把richTextBox1中显示的内容,通过打印预览对话框显示出来:
//www.naio.net
string strText = richTextBox1.Text ;
  StringReader myReader = new StringReader ( strText ) ;
  PrintPreviewDialog printPreviewDialog1 = new PrintPreviewDialog ( ) ;
  printPreviewDialog1.Document = ThePrintDocument  ;
  printPreviewDialog1.FormBorderStyle = FormBorderStyle.Fixed3D  ;
  printPreviewDialog1.ShowDialog ( ) ;  
下列代码是设定打印内容即打印richTextBox1中的内容:

float linesPerPage = 0 ;
        float yPosition = 0 ;
        int count = 0 ;
        float leftMargin = ev.MarginBounds.Left ;
        float topMargin = ev.MarginBounds.Top ;
        string line = null ;
        Font printFont = richTextBox1.Font ;
        SolidBrush myBrush = new SolidBrush ( Color.Black ) ;
        //计算每一页打印多少行
      linesPerPage = ev.MarginBounds.Height / printFont.GetHeight ( ev.Graphics ) ;
        //重复使用StringReader对象 ,打印出richTextBox1中的所有内容
        while ( count < linesPerPage && ( ( line = myReader.ReadLine ( ) ) != null ) )
      {
// 计算出要打印的下一行所基于页面的位置
  yPosition = topMargin + ( count * printFont.GetHeight ( ev.Graphics ) ) ;
  // 打印出richTextBox1中的下一行内容
  ev.Graphics.DrawString ( line , printFont , myBrush , leftMargin , yPosition , new StringFormat ( ) ) ;
  count++ ;
        }
        // 判断如果还要下一页,则继续打印
        if ( line != null )
  ev.HasMorePages = true ;
        else
  ev.HasMorePages = false ;
        myBrush.Dispose ( ) ;
  using System ;
    using System.Drawing ;
    using System.Collections ;
    using System.ComponentModel ;
    using System.Windows.Forms ;
    using System.Data ;
    using System.IO ;
    using System.Drawing.Printing ;
  public class Form1 : Form
  {
  private RichTextBox richTextBox1 ;
  private Button button1 ;
  private Button button2 ;
  private Button button3 ;
  private Button button4 ;
  private Button button5 ;
  private OpenFileDialog openFileDialog1 ;
  private SaveFileDialog saveFileDialog1 ;
  private PrintDialog printDialog1 ;
  private PrintDocument ThePrintDocument ;
  private PrintPreviewDialog printPreviewDialog1 ;
            private StringReader myReader ;
  private System.ComponentModel.Container components = null ;
  
  public Form1 ( )
  {
  //初始化窗体中的各个组件
  InitializeComponent ( ) ;
  }
  //清除程序中使用多的资源
  protected override void Dispose ( bool disposing )
  {
  if ( disposing )
  {
  if ( components != null )
{
components.Dispose ( ) ;
  }
  }
  base.Dispose ( disposing ) ;
  }
  private void InitializeComponent ( )
  {
  richTextBox1 = new RichTextBox ( ) ;
  button1 = new Button ( ) ;
  button2 = new Button ( ) ;
  button3 = new Button ( ) ;
  button4 = new Button ( ) ;
  button5 = new Button ( ) ;
          saveFileDialog1 = new SaveFileDialog ( ) ;
          openFileDialog1 = new OpenFileDialog ( ) ;
  printPreviewDialog1 = new PrintPreviewDialog ( ) ;
  printDialog1 = new PrintDialog ( ) ;
  ThePrintDocument = new PrintDocument ( ) ;
                          ThePrintDocument.PrintPage += new PrintPageEventHandler ( ThePrintDocument_PrintPage ) ;
  SuspendLayout ( ) ;
  richTextBox1.Anchor = AnchorStyles.None ;
  richTextBox1.Name = "richTextBox1" ;
  richTextBox1.Size = new Size ( 448 , 280 ) ;
  richTextBox1.TabIndex = 0 ;
  richTextBox1.Text = "" ;
  button1.Anchor = AnchorStyles.None ;
  button1.Location = new Point ( 41 , 289 ) ;
  button1.Name = "button1" ;
  button1.Size = new Size ( 48 , 30 ) ;
  button1.TabIndex = 1 ;
  button1.Text = "打开" ;
  button1.Click += new System.EventHandler ( button1_Click ) ;
  button2.Anchor = AnchorStyles.None ;
  button2.Location = new Point ( 274 , 288 ) ;
  button2.Name = "button2" ;
  button2.Size = new Size ( 48 , 30 ) ;
  button2.TabIndex = 4 ;
  button2.Text = "预览" ;
  button2.Click += new System.EventHandler ( button2_Click ) ;
  button3.Anchor = AnchorStyles.None ;
  button3.Location = new Point ( 108 , 288 ) ;
  button3.Name = "button3" ;
  button3.Size = new Size ( 48 , 30 ) ;
  button3.TabIndex = 2 ;
  button3.Text = "保存" ;
  button3.Click += new System.EventHandler ( button3_Click ) ;
  button4.Anchor = AnchorStyles.None ;
  button4.Location = new Point ( 174 , 288 ) ;
  button4.Name = "button4" ;
  button4.Size = new Size ( 80 , 30 ) ;
  button4.TabIndex = 3 ;
  button4.Text = "打印机设置" ;
  button4.Click += new System.EventHandler ( button4_Click ) ;
  button5.Anchor = AnchorStyles.None ;
  button5.Location = new Point ( 345 , 288 ) ;
  button5.Name = "button5" ;
  button5.Size = new Size ( 48 , 30 ) ;
  button5.TabIndex = 5 ;
  button5.Text = "打印" ;
  button5.Click += new System.EventHandler ( button5_Click ) ;
         saveFileDialog1.DefaultExt = "*.txt" ;
      saveFileDialog1.FileName = "file.txt" ;
  saveFileDialog1.InitialDirectory = "c:\\" ;
  saveFileDialog1.Title = "另存为!" ;
  openFileDialog1.DefaultExt = "*.txt" ;
  openFileDialog1.FileName = "file.txt" ;
  openFileDialog1.InitialDirectory = "c:\\" ;
  openFileDialog1.Title = "打开文本文件!" ;
  AutoScaleBaseSize = new Size ( 6 , 14 ) ;
  ClientSize = new Size ( 448 , 325 ) ;
  this.Controls.Add ( button1 ) ;
  this.Controls.Add ( button2 ) ;
  this.Controls.Add ( button3 ) ;
  this.Controls.Add ( button4 ) ;
  this.Controls.Add ( button5 ) ;
  this.Controls.Add ( richTextBox1 ) ;
  
  this.MaximizeBox = false ;
  this.Name = "Form1" ;
  this.Text = "C#来操作文本文件" ;
  this.ResumeLayout ( false ) ;
  }
  static void Main ( )
{
Application.Run ( new Form1 ( ) ) ;
  }
  
  private void button1_Click ( object sender , System.EventArgs e )
  {
        try
        {
  if ( openFileDialog1.ShowDialog ( ) == DialogResult.OK )
  {
    FileStream fs = new FileStream ( openFileDialog1.FileName  , FileMode.Open , FileAccess.Read ) ;
    StreamReader m_streamReader = new StreamReader ( fs ) ;
  //使用StreamReader类来读取文件
  m_streamReader.BaseStream.Seek ( 0 , SeekOrigin.Begin ) ;
    // 从数据流中读取每一行,直到文件的最后一行,并在richTextBox1中显示出内容
    this.richTextBox1.Text = "" ;
    string strLine = m_streamReader.ReadLine ( ) ;
    while ( strLine != null )
    {
      this.richTextBox1.Text += strLine + "\n" ;
      strLine = m_streamReader.ReadLine ( ) ;
    }
    //关闭此StreamReader对象
    m_streamReader.Close ( ) ;
  }
      }
      catch ( Exception em )
        {
  Console.WriteLine ( em.Message.ToString ( ) ) ;
        }
  
  }
  
  private void button3_Click ( object sender , System.EventArgs e )
  {
        try
        {
  //获得另存为的文件名称
  if ( saveFileDialog1.ShowDialog ( ) == DialogResult.OK )
  {
  //创建一个文件流,用以写入或者创建一个StreamWriter
  FileStream fs = new FileStream ( @saveFileDialog1.FileName  , FileMode.OpenOrCreate , FileAccess.Write ) ;
    StreamWriter m_streamWriter = new StreamWriter ( fs ) ;
    m_streamWriter.Flush ( ) ;
  
    // 使用StreamWriter来往文件中写入内容
    m_streamWriter.BaseStream.Seek ( 0 , SeekOrigin.Begin ) ;
    // 把richTextBox1中的内容写入文件
    m_streamWriter.Write ( richTextBox1.Text ) ;
    //关闭此文件
    m_streamWriter.Flush ( ) ;
    m_streamWriter.Close ( ) ;
  }
        }
        catch ( Exception em )
        {
  Console.WriteLine ( em.Message.ToString ( ) ) ;
        }
  }
  
  private void button4_Click ( object sender , System.EventArgs e )
  {
        printDialog1.Document = ThePrintDocument ;
        printDialog1.ShowDialog ( ) ;
  }
  //预览打印文档
  private void button2_Click ( object sender , System.EventArgs e )
  {
        try
        {
  string strText = richTextBox1.Text ;
  myReader = new StringReader ( strText ) ;
  PrintPreviewDialog printPreviewDialog1 = new PrintPreviewDialog ( ) ;
  printPreviewDialog1.Document = ThePrintDocument  ;
  printPreviewDialog1.FormBorderStyle = FormBorderStyle.Fixed3D  ;
  printPreviewDialog1.ShowDialog ( ) ;
        }
        catch ( Exception exp )
        {
  Console.WriteLine ( exp.Message.ToString ( ) ) ;
        }
  }
  //打印richTextBox1中的内容
  private void button5_Click ( object sender , System.EventArgs e )
  {
        printDialog1.Document = ThePrintDocument ;
        string strText = richTextBox1.Text ;
        myReader = new StringReader ( strText ) ;
        if ( printDialog1.ShowDialog ( ) == DialogResult.OK )
        {
  ThePrintDocument.Print ( ) ;
        }
  }
        protected void ThePrintDocument_PrintPage ( object sender , PrintPageEventArgs ev )
              {
        float linesPerPage = 0 ;
        float yPosition = 0 ;
        int count = 0 ;
        float leftMargin = ev.MarginBounds.Left ;
        float topMargin = ev.MarginBounds.Top ;
        string line = null ;
        Font printFont = richTextBox1.Font ;
        SolidBrush myBrush = new SolidBrush ( Color.Black ) ;
        //计算每一页打印多少行
      linesPerPage = ev.MarginBounds.Height / printFont.GetHeight ( ev.Graphics ) ;
        //重复使用StringReader对象 ,打印出richTextBox1中的所有内容
        while ( count < linesPerPage && ( ( line = myReader.ReadLine ( ) ) != null ) )
      {
// 计算出要打印的下一行所基于页面的位置
  yPosition = topMargin + ( count * printFont.GetHeight ( ev.Graphics ) ) ;
  // 打印出richTextBox1中的下一行内容
  ev.Graphics.DrawString ( line , printFont , myBrush , leftMargin , yPosition , new StringFormat ( ) ) ;
  count++ ;
        }
        // 判断如果还要下一页,则继续打印
        if ( line != null )
  ev.HasMorePages = true ;
        else
  ev.HasMorePages = false ;
        myBrush.Dispose ( ) ;
   }
}

使用c#操作txt的更多相关文章

  1. python操作txt文件中数据教程[4]-python去掉txt文件行尾换行

    python操作txt文件中数据教程[4]-python去掉txt文件行尾换行 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考文章 python操作txt文件中数据教程[1]-使用pyt ...

  2. python操作txt文件中数据教程[3]-python读取文件夹中所有txt文件并将数据转为csv文件

    python操作txt文件中数据教程[3]-python读取文件夹中所有txt文件并将数据转为csv文件 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考文献 python操作txt文件中 ...

  3. python操作txt文件中数据教程[2]-python提取txt文件

    python操作txt文件中数据教程[2]-python提取txt文件中的行列元素 觉得有用的话,欢迎一起讨论相互学习~Follow Me 原始txt文件 程序实现后结果-将txt中元素提取并保存在c ...

  4. python操作txt文件中数据教程[1]-使用python读写txt文件

    python操作txt文件中数据教程[1]-使用python读写txt文件 觉得有用的话,欢迎一起讨论相互学习~Follow Me 原始txt文件 程序实现后结果 程序实现 filename = '. ...

  5. C#操作txt文件并清空添加操作

    C#操作txt文件,进行清空添加操作的例子.代码: //把txt清空 FileStream stream = File.Open(Adr,FileMode.OpenOrCreate,FileAcces ...

  6. python 操作txt 生成新的文本数据

    name: Jack ; salary: 12000 name :Mike ; salary: 12300 name: Luk ; salary: 10030 name :Tim ; salary: ...

  7. QTP操作txt文档

    QTP可以在txt文件(文本文件中读取数据) 首先创造一个文档对象 set fso = createObject("scripting.filesystemobject") 然后用 ...

  8. C#操作txt文件

    目的:txt文件的创建,读写操作 功能:创建一个winform窗体,当文件不存在时可以实现txt文件的创建 效果: 代码: 文件的创建(判断文件是否存在,不存在则创建新的文本文件): private ...

  9. c#操作txt

    C#追加文件 StreamWriter sw = File.AppendText(Server.MapPath(".")+"\\myText.txt"); sw ...

  10. java操作txt文本(一):遇到指定字符换行

    想法由来:有时查看网页源代码的css文件内容,竟是恼人的压缩后代码(不换行),如下图所示-- 它的可读性很差,所以写了下面这个简单的程序,实现自动换行. 适用条件:遇到指定字符换行(本例中遇到'}'换 ...

随机推荐

  1. ASP.NET没有魔法——第一个ASP.NET应用《MyBlog》

    创建一个ASP.NET MVC应用程序 在之前文章中介绍了ASP.NET中提供了3个开发动态网页的框架,分别是Web Form.MVC以及Web Pages,也大概介绍了它们的特点. 其中MVC对于其 ...

  2. 如何在Windows系统中配置Mysql群集(Mysql Cluster)

    MySQL群集技术在分布式系统中为MySQL数据提供了冗余特性,增强了安全性,使得单个MySQL服务器故障不会对系统产生巨大的负面效应,系统的稳定性得到保障. Mysql群集(Cluster)简介 M ...

  3. WPF 在事件中绑定命令(不可以在模版中绑定命令)

    其实这也不属于MVVMLight系列中的东东了,没兴趣的朋友可以跳过这篇文章,本文主要介绍如何在WPF中实现将命令绑定到事件中. 上一篇中我们介绍了MVVMLight中的命令的用法,那么仅仅知道命令是 ...

  4. 【学习】js学习笔记:对象的一些基础知识

    1.创建对象 //构造函数方法 function fun1(){} var obj=new fun1(); //Object方法,O要大写 var obj1=new Object(); //json方 ...

  5. ios 指定页面禁用第三方键盘,使用系统的键盘

    因为项目需要,需要在添加银行卡和提现页面使用数字键盘, 如果用户没有安装第三方键盘是没啥大问题的,但是如果用户手机安装了第三方的键盘的话,有时候会无法调用起第三方的数字键盘,或者第三方键盘样式不符合, ...

  6. JSP前后台数据交互

    1.一般方法:在页面加载时载入数据 首先,新建一个包,在包内创建一个类,类实现接口Servlet-javax.servlet 然后,在web.xml文件里配置如下 <?xml version=& ...

  7. LeetCode 122. Best Time to Buy and Sell Stock II (买卖股票的最好时机之二)

    Say you have an array for which the ith element is the price of a given stock on day i. Design an al ...

  8. LeetCode 40. Combination Sum II (组合的和之二)

    Given a collection of candidate numbers (C) and a target number (T), find all unique combinations in ...

  9. LeetCode 31. Next Permutation (下一个排列)

    Implement next permutation, which rearranges numbers into the lexicographically next greater permuta ...

  10. python 使用标准库根据进程名获取进程的pid

    有时候需要获取进程的pid,但又无法使用第三方库的时候. 方法适用linux平台. 方法1 使用subprocess 的check_output函数执行pidof命令 from subprocess ...