热门标签 | HotTags
当前位置:  开发笔记 > 开发工具 > 正文

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

本文给大家汇总介绍了C#实现文本文件读写的方法,十分的简单实用,有需要的小伙伴可以参考下。

方法一:

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("保存成功");
    }

  }
}

方法二:

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();
    }
  }

以上所述就是本文的全部内容了,希望大家能够喜欢。


推荐阅读
  • GetWindowLong函数
    今天在看一个代码里头写了GetWindowLong(hwnd,0),我当时就有点费解,靠,上网搜索函数原型说明,死活找不到第 ... [详细]
  • 基于layUI的图片上传前预览功能的2种实现方式
    本文介绍了基于layUI的图片上传前预览功能的两种实现方式:一种是使用blob+FileReader,另一种是使用layUI自带的参数。通过选择文件后点击文件名,在页面中间弹窗内预览图片。其中,layUI自带的参数实现了图片预览功能。该功能依赖于layUI的上传模块,并使用了blob和FileReader来读取本地文件并获取图像的base64编码。点击文件名时会执行See()函数。摘要长度为169字。 ... [详细]
  • 本文讨论了在Windows 8上安装gvim中插件时出现的错误加载问题。作者将EasyMotion插件放在了正确的位置,但加载时却出现了错误。作者提供了下载链接和之前放置插件的位置,并列出了出现的错误信息。 ... [详细]
  • 本文讨论了Alink回归预测的不完善问题,指出目前主要针对Python做案例,对其他语言支持不足。同时介绍了pom.xml文件的基本结构和使用方法,以及Maven的相关知识。最后,对Alink回归预测的未来发展提出了期待。 ... [详细]
  • 本文介绍了C#中生成随机数的三种方法,并分析了其中存在的问题。首先介绍了使用Random类生成随机数的默认方法,但在高并发情况下可能会出现重复的情况。接着通过循环生成了一系列随机数,进一步突显了这个问题。文章指出,随机数生成在任何编程语言中都是必备的功能,但Random类生成的随机数并不可靠。最后,提出了需要寻找其他可靠的随机数生成方法的建议。 ... [详细]
  • 本文介绍了在Hibernate配置lazy=false时无法加载数据的问题,通过采用OpenSessionInView模式和修改数据库服务器版本解决了该问题。详细描述了问题的出现和解决过程,包括运行环境和数据库的配置信息。 ... [详细]
  • Win10下游戏不能全屏的解决方法及兼容游戏列表
    本文介绍了Win10下游戏不能全屏的解决方法,包括修改注册表默认值和查看兼容游戏列表。同时提供了部分已经支持Win10的热门游戏列表,帮助玩家解决游戏不能全屏的问题。 ... [详细]
  • 如何在联想win10专业版中修改账户名称
    本文介绍了在联想win10专业版中修改账户名称的方法,包括在计算机管理中找到要修改的账户,通过重命名来修改登录名和属性来修改显示名称。同时指出了windows10家庭版无法使用此方法的限制。 ... [详细]
  • 本文讨论了如何优化解决hdu 1003 java题目的动态规划方法,通过分析加法规则和最大和的性质,提出了一种优化的思路。具体方法是,当从1加到n为负时,即sum(1,n)sum(n,s),可以继续加法计算。同时,还考虑了两种特殊情况:都是负数的情况和有0的情况。最后,通过使用Scanner类来获取输入数据。 ... [详细]
  • Windows下配置PHP5.6的方法及注意事项
    本文介绍了在Windows系统下配置PHP5.6的步骤及注意事项,包括下载PHP5.6、解压并配置IIS、添加模块映射、测试等。同时提供了一些常见问题的解决方法,如下载缺失的msvcr110.dll文件等。通过本文的指导,读者可以轻松地在Windows系统下配置PHP5.6,并解决一些常见的配置问题。 ... [详细]
  • 电脑公司win7剪切板位置及使用方法
    本文介绍了电脑公司win7剪切板的位置和使用方法。剪切板一般位于c:\windows\system32目录,程序名为clipbrd.exe。通过在搜索栏中输入cmd打开命令提示符窗口,并输入clip /?即可调用剪贴板查看器。赶紧来试试看吧!更多精彩文章请关注本站。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • 本文介绍了C#中数据集DataSet对象的使用及相关方法详解,包括DataSet对象的概述、与数据关系对象的互联、Rows集合和Columns集合的组成,以及DataSet对象常用的方法之一——Merge方法的使用。通过本文的阅读,读者可以了解到DataSet对象在C#中的重要性和使用方法。 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • Mac OS 升级到11.2.2 Eclipse打不开了,报错Failed to create the Java Virtual Machine
    本文介绍了在Mac OS升级到11.2.2版本后,使用Eclipse打开时出现报错Failed to create the Java Virtual Machine的问题,并提供了解决方法。 ... [详细]
author-avatar
阵风阿斯顿
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有