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

方法一:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
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( "保存成功" );
     }
 
   }
}

方法二:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
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();
     }
   }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值