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

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

(0)

相关推荐

  • C#读写指定编码格式的文本文件

    在工作中经常读写文本文件,在读文件时,需要按开头的两个字节判断文件格式,然后按该格式读文件中的内容.  写文件时,也要按目标文件指定的格式来写入,只有这样才能让后续的环境正确读入. 1 查看格式     在vs2010开发环境打开某个文件,然后从菜单上, 文件--高级保存选项,就可看到当前文件的编码格式.   比如,xx.cs,xx.cshtml文件看到的是[简体中文(GB2312)-代码页936],就是GB2312.   xx.xml文件看到的是[Unicode(UTF-8带签名)-代码页65

  • C#控制台进行文件读写的方法

    本文实例讲述了C#控制台进行文件读写的方法.分享给大家供大家参考.具体如下: C#控制台进行文件写入: using System; using System.IO; class file1 { public static void Main() { string PATH = null; Console.WriteLine("file path: "); //这里输入文本所在目录 例如 d:\text.txt PATH = Console.ReadLine(); StreamW

  • 轻松学习C#的读写操作

    在看到C#流程控制结构的这一章节,看到了一个很好的关于C#读写操作的一个例子.这个例子就是典型的for迭代语句编写"小九九表". 第一种输出格式的代码: <span style="font-size:18px;"> for (int i = 1; i <=9; i++) { for (int j = 1; j <= i; j++) { Console.Write("{0}*{1}={2}", i, j, i * j); }

  • C#读写文本文件的方法

    本文实例讲述了C#读写文本文件的方法.分享给大家供大家参考.具体分析如下: System.IO命名空间中的类为托管应用程序提供文件以及其他形式的输入输出.托管i/o的基本构件是流,而流是字节导向的数据的抽象表示.流通过System.IO.Stream类表示. System.IO.FileStream允许将文件作为流访问; System.IO.MemoryStream允许将内存块作为流进行访问 以下为读写文件的示例 先引用命名空间 using System.IO; 以下是源代码 namespace

  • C# FileStream文件读写详解

    FileStream对象表示在磁盘或网络路径上指向文件的流.这个类提供了在文件中读写字节的方法,但经常使用StreamReader或StreamWriter执行这些功能.这是因为FileStream类操作的是字节和字节数组,而Stream类操作的是字符数据.字符数据易于使用,但是有些操作,比如随机文件访问(访问文件中间某点的数据),就必须由FileStream对象执行,稍后对此进行介绍. 还有几种方法可以创建FileStream对象.构造函数具有许多不同的重载版本,最简单的构造函数仅仅带有两个参

  • C#之IO读写文件方法封装代码

    具体不做详细介绍了,直接上代码 /// <summary> /// 功能:FileStream文件流读取文件 /// </summary> /// <param name="filePath">参数:文件路径</param> /// <returns>返回值:StreamReader对象</returns> public static StreamReader ReadFileByFs(string filePat

  • C#流类FileStream学习使用笔记

    static void Main(string[] args) { //创建FileStream对象需要指定 文件名,打开模式,访问模式,共享模式 //1.调用本身的构造函数创建流 FileStream fs1 = new FileStream(@"F:\1.txt", FileMode.Open, FileAccess.ReadWrite,FileShare.ReadWrite); //2.利用File类或者FileInfo类的Open方法 //FileStream fs2 = Fi

  • 如何使用C#读写锁ReaderWriterLockSlim

    读写锁的概念很简单,允许多个线程同时获取读锁,但同一时间只允许一个线程获得写锁,因此也称作共享-独占锁.在C#中,推荐使用ReaderWriterLockSlim类来完成读写锁的功能. 某些场合下,对一个对象的读取次数远远大于修改次数,如果只是简单的用lock方式加锁,则会影响读取的效率.而如果采用读写锁,则多个线程可以同时读取该对象,只有等到对象被写入锁占用的时候,才会阻塞. 简单的说,当某个线程进入读取模式时,此时其他线程依然能进入读取模式,假设此时一个线程要进入写入模式,那么他不得不被阻塞

  • 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

  • java中关于文本文件的读写方法实例总结

    本文实例总结了java中关于文本文件的读写方法.分享给大家供大家参考,具体如下: 写文本数据 方法 一: import java.io.*; public class A { public static void main(String args[]) { FileOutputStream out; PrintStream ps; try { out = new FileOutputStream("a.txt"); ps = new PrintStream(out); ps.print

  • python中csv文件的若干读写方法小结

    如下所示: //用普通文本文件方式打开和操作 with open("'file.csv'") as cf: lines=cf.readlines() ...... //用普通文本方式打开,用csv模块操作 import csv with open("file.csv") as cf: lines=csv.reader(cf) for line in lines: print(line) ...... import csv headers=['id','usernam

  • Python文件相关操作和方法汇总大全

    目录 os.path 文件 文件读写 文件删除 文件复制移动 目录 创建目录 删除目录 复制目录 枚举目录 遍历(游走)目录 文件名模式匹配 fnmatch glob 临时文件与目录 前言: Python中有多个内置模块来操作文件与目录(os.os.path.shutil.pathlib等等). os.path os.path模块主要用于获取文件的属性,包含以下几种常用方法: 路径操作: print(os.path.splitext('.info')) # ('.info', '') print

  • Android SQLite操作之大数据处理与同时读写方法

    本文实例讲述了Android SQLite操作之大数据处理与同时读写方法.分享给大家供大家参考,具体如下: 1. 批量写入 采用事物方式,先缓存数据,再批量写入数据,极大提高了速度 288条,直接inset into 耗时7秒 8640条,   批量写入 耗时5-7秒 try { this.myDataBase.beginTransaction(); // 手动设置开始事务 for (int i = 0; i < objArr.length; i++) { this.myDataBase.exe

  • python实现按行切分文本文件的方法

    本文实例讲述了python实现按行切分文本文件的方法.分享给大家供大家参考,具体如下: python脚本利用shell命令来实现文本的操作, 这些命令大大减少了我们的代码量. 比如按行切分文件并返回切分后得到的文件列表,可以利用内建的split命令进行切分.为了返回得到的文件列表名,可以先将文件切分到自建的子目录中,然后通过os.listdir获取所有文件,再将这些文件移到上一级目录(即函数参数指定的新目录),删除自建子目录,最后返回该文件名列表. 代码如下,如发现问题欢迎指正: # 创建新路径

  • Python3 中文文件读写方法

    字符串在Python内部的表示是Unicode编码,因此,在做编码转换时,通常需要以Unicode作为中间编码,即先将其他编码的字符串解码(decode)成Unicode,再从Unicode编码(encode)成另一种编码. 在新版本的python3中,取消了unicode类型,代替它的是使用unicode字符的字符串类型(str),字符串类型(str)成为基础类型如下所示,而编码后的变为了字节类型(bytes) 但是两个函数的使用方法不变: decode encode bytes ------

  • PHP通过bypass disable functions执行系统命令的方法汇总

    一.为什么要bypass disable functions 为了安全起见,很多运维人员会禁用PHP的一些"危险"函数,例如eval.exec.system等,将其写在php.ini配置文件中,就是我们所说的disable functions了,特别是虚拟主机运营商,为了彻底隔离同服务器的客户,以及避免出现大面积的安全问题,在disable functions的设置中也通常较为严格. 攻与防是对立的,也是互相补充的,既然有对函数的禁用措施,就会有人想方设法的去突破这层限制,我们只有在掌

  • Java中文件的读写方法之IO流详解

    目录 1.File类 1.1File类概述和构造方法 1.2File类创建功能 1.3File类判断和获取功能 1.4File类删除功能 2.递归 2.1递归 2.2递归求阶乘 2.3递归遍历目录 3.IO流 3.1 IO流概述和分类 3.2字节流写数据 3.3字节流写数据的三种方式 3.4字节流写数据的两个小问题 3.5字节流写数据加异常处理 3.6字节流读数据(一次读一个字节数据) 3.7字节流复制文本文件 3.8字节流读数据(一次读一个字节数组数据) 3.9字节流复制图片 总结 1.Fil

随机推荐