C#实现文本文件读写方法汇总

时间:2021-08-05 13:06:32

方法一:

?
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 using
System;
using
System.Collections.Generic;
using
System.ComponentModel;
using
System.Data;
using
System.Drawing;
using
System.Linq;
using
System.Text;
using
System.Threading.Tasks;
using
System.Windows.Forms;
using
System.IO;
  namespace
txt
{  public
partial
class Form1 : Form
  {    // string path;    public
Form1()
    {      InitializeComponent();      button3.Click+=button3_Click;    }      private
void
textBox2_TextChanged(object
sender, EventArgs e)
    {      string
path1 = textBox2.Text;
      if(!File.Exists(path1))      {        MessageBox.Show("文件不存在");      }    }    //浏览按钮    private
void
button3_Click(object
sender, EventArgs e)
    {      /*if (folderBrowserDialog1.ShowDialog() == DialogResult.OK)      {          string selUrl = folderBrowserDialog1.SelectedPath;      }*/           OpenFileDialog ofd = new
OpenFileDialog();
        if
(ofd.ShowDialog() == DialogResult.OK)
      {        textBox2.Text = ofd.FileName;      }        //选择文件夹      /* FolderBrowserDialog fbd = new FolderBrowserDialog();      fbd.ShowDialog();      MessageBox.Show(fbd.SelectedPath);       */    }    //读取文件    private
void
button1_Click(object
sender, EventArgs e)
    {      if(textBox2.Text!=null)        //读取文件内容并显示在textbox1中让用户修改      {        string
path=textBox2.Text;
        if
(File.Exists(path))
       //  {        //   File.Delete(path);        // }        textBox1.Text = File.ReadAllText(path, Encoding.Default);      }    }      private
void
button2_Click(object
sender, EventArgs e)
    {      // string[] appendText=textBox1.Text;              File.WriteAllText(textBox2.Text, textBox1.Text, Encoding.Default);      MessageBox.Show("保存成功");    }   }}

方法二:

?
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 namespace
文本文件打开测试
{
 public
partial
class Form1 : Form
 {  public
Form1()
  {   InitializeComponent();  }  private
void
btn_Read_Click(object
sender, EventArgs e)
  {   //异常检测开始   try   {    FileStream fs = new
FileStream(@tB_PachFileName.Text , FileMode.Open, FileAccess.Read);
//读取文件设定
    StreamReader m_streamReader = new
StreamReader(fs, System.Text.Encoding.GetEncoding(
"GB2312"));//设定读写的编码
    //使用StreamReader类来读取文件    m_streamReader.BaseStream.Seek(0, SeekOrigin.Begin);     // 从数据流中读取每一行,直到文件的最后一行,并在rTB_Display.Text中显示出内容     this.rTB_Display.Text = "";    string
strLine = m_streamReader.ReadLine();
    while
(strLine !=
null)
    {     this.rTB_Display.Text += strLine + "\n";     strLine = m_streamReader.ReadLine();     }    //关闭此StreamReader对象    m_streamReader.Close();   }   catch   {    //抛出异常    MessageBox.Show("指定文件不存在");    return;   }   //异常检测结束  }  private
void
btn_Replace_Click(object
sender, EventArgs e)
  {   //判断替换开始   if
(tB_Replace.Text ==
""&&tB_Replace_2.Text=="")
   {    MessageBox.Show("想替换的字符都没有就换啊,你太有才了");   }   else   {    if
(rTB_Display.Text ==
"")
    {     MessageBox.Show("文件内容为空无法进行替换,请检查文件");    }    else    {     string
str = rTB_Display.Text.ToString();
     rTB_Display.Text = str.Replace(@tB_Replace.Text ,@tB_Replace_2.Text);//替换    }   }   //结束  }  private
void
btn_Save_Click(object
sender, EventArgs e)
  {   //异常检测开始   try   {    //创建一个文件流,用以写入或者创建一个StreamWriter    FileStream fs = new
FileStream(@tB_Save.Text, 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(rTB_Display.Text);    //关闭此文件    m_streamWriter.Flush();    m_streamWriter.Close();   }   catch   {    //抛出异常    MessageBox.Show("写入文件失败,请检查路径 文件名与权限是否符合");   }   //异常检测结束  } }}

方法三:

?//写入文本文件  class
WriteTextFile
  {    static
void
Main()
    {      //如果文件不存在,则创建;存在则覆盖      //该方法写入字符数组换行显示      string[] lines = { "first line","second line","third line","第四行"
};
      System.IO.File.WriteAllLines(@"C:\testDir\test.txt", lines, Encoding.UTF8);       //如果文件不存在,则创建;存在则覆盖      string
strTest =
"该例子测试一个字符串写入文本文件。";
      System.IO.File.WriteAllText(@"C:\testDir\test1.txt", strTest, Encoding.UTF8);       //在将文本写入文件前,处理文本行      //StreamWriter一个参数默认覆盖      //StreamWriter第二个参数为false覆盖现有文件,为true则把文本追加到文件末尾      using
(System.IO.StreamWriter file =
new
System.IO.StreamWriter(
@"C:\testDir\test2.txt",true))
      {        foreach
(
string
line
in
lines)
        {          if
(!line.Contains(
"second"))
          {            file.Write(line);//直接追加文件末尾,不换行            file.WriteLine(line);// 直接追加文件末尾,换行            }        }      }    }  } //读取文本文件   class
ReadTextFile
  {    static
void
Main()
    {      //直接读取出字符串      string
text = System.IO.File.ReadAllText(
@"C:\testDir\test1.txt");
      Console.WriteLine(text);       //按行读取为字符串数组      string[] lines = System.IO.File.ReadAllLines(@"C:\testDir\test.txt");      foreach
(
string
line
in
lines)
      {        Console.WriteLine(line);      }       //从头到尾以流的方式读出文本文件      //该方法会一行一行读出文本      using
(System.IO.StreamReader sr =
new
System.IO.StreamReader(
@"C:\testDir\test.txt"))
      {        string
str;
        while
((str = sr.ReadLine()) !=
null)
        {          Console.WriteLine(str);        }      }      Console.Read();    }  }