【C#】txt的读写

来源:互联网 发布:苹果系统删除软件 编辑:程序博客网 时间:2024/05/02 00:06

这个程序和《【C#】XML读写与dataGridView的使用》(点击打开链接)一个尿性,只是代码更加简单,因为C#对txt的读写基本上和Java一样,具体见《【Java】输入与输出与JDK1.5之后的新型字符串StringBuilder》(点击打开链接),直接一个FileStream与StreamReader/StreamWriter就足矣,但貌似自己还没有写过C#的文件流,也就在这里写写了。还是弄一个窗体程序,可以读txt到TextBox,并且能将TextBox的内容写入到文件。


如果用户一开始是没有读入txt的话,那就是直接创建一个新的文件再写入。


这个程序的编写步骤如下:

一、场景布置

场景布置如下图所示,在Form1中布置2个Button+1个textbox


二、脚本编写

双击Button1与Button2分别赋予点击事件,编写如下的代码:

using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;using System.IO;namespace txtRW{    public partial class Form1 : Form    {        string txt_FilePath = "";//用来记录当前打开文件的路径的          public Form1()        {            InitializeComponent();        }        private void button1_Click(object sender, EventArgs e)        {            OpenFileDialog openFileDialog1 = new System.Windows.Forms.OpenFileDialog();//一个打开文件的对话框              openFileDialog1.Filter = "文本文件(*.txt)|*.txt";//设置允许打开的扩展名              if (openFileDialog1.ShowDialog() == DialogResult.OK)//判断是否选择了文件                {                txt_FilePath = openFileDialog1.FileName;//打开文件的路径                textBox1.Text = "";//清空textBox1                StreamReader streamReader = new StreamReader(txt_FilePath, Encoding.Default);//记录用户选择的文件路径                while (!streamReader.EndOfStream)                {//如果这个还没有读到文件尾                    string line = streamReader.ReadLine();//就一行一行地读                    textBox1.Text += line + "\r\n";                }                streamReader.Close();//一定要关闭这个流,不然会和下面保存文件的流冲突            }            else            {                MessageBox.Show("请打开txt文件");            }        }        private void button2_Click(object sender, EventArgs e)        {            FileStream fileStream = null;//根据不同情况使用不同的文件指针            if (txt_FilePath == "")//如果用户没读取过文件,那就获取一个文件路径写入            {                SaveFileDialog saveFileDialog1 = new System.Windows.Forms.SaveFileDialog();//打开一个保存对话框                saveFileDialog1.Filter = "文本文件(*.txt)|*.txt";//设置允许打开的扩展名                  if (saveFileDialog1.ShowDialog() == DialogResult.OK)//判断是否选择了一个文件路径                  {                    txt_FilePath = saveFileDialog1.FileName;//获取保存路径                    fileStream = new FileStream(txt_FilePath, FileMode.Create);//以创建的方式打开这个文件                }                else                {                    MessageBox.Show("请打开txt文件");                }            }            else//如果用户已经打开了文件            {                fileStream = new FileStream(txt_FilePath, FileMode.Truncate);//以覆盖写入的方式打开这个文件            }            StreamWriter streamWriter = new StreamWriter(fileStream);            streamWriter.Write(textBox1.Text);//开始写入            streamWriter.Flush();//清空缓冲区            //关闭流            streamWriter.Close();            fileStream.Close();            MessageBox.Show("写入txt文件成功!");        }    }}

这里值得注意主要就是FileStream与StreamReader/StreamWriter两个流,对于StreamReader无须FileStream帮助,自己就能指明程序路径读取,StreamWriter由于写入方式有覆盖写入、创建写入和附加写入的存在,因此需要借助FileStream的帮助,如果希望是附加写入的,FileStream的第二个参数请使用FileMode.Append

0 0
原创粉丝点击