C#读写txt文件

利用StreamWriter类和StreamReader类实现读写txt文件

1. StreamWriter有7个构造函数
  (1) StreamWriter(Stream)     // 用 UTF-8 编码及默认缓冲区大小,为指定的流初始化 StreamWriter 类的一个新实例。
               //FileStream stream = new FileStream(@"D:a.txt",FileMode.CreateNew);  


  (2) StreamWriter (String)  // 使用默认编码和缓冲区大小,为指定路径上的指定文件初始化StreamWriter 类的新实例。


  (3) StreamWriter (Stream, Encoding) // 用指定的编码及默认缓冲区大小,为指定的流初始化 StreamWriter 类的新实例。(默认写入编码为UTF8)


  (4) StreamWriter (String, Boolean) // 使用默认编码和缓冲区大小,为指定路径上的指定文件初始化 StreamWriter 类的新实例。
                  //true表示如果该文件存在,则可以向其追加。false表示将其全部重写。如果该文件不存在,则此构造函数将创建一个新文件。(本例中使用)


  (5) StreamWriter (Stream, Encoding, Int32) // 用指定的编码及缓冲区大小,为指定的流初始化 StreamWriter 类的新实例。int为缓冲区大小


  (6) StreamWriter (String, Boolean, Encoding) // 使用指定编码和默认缓冲区大小,为指定路径上的指定文件初始化 StreamWriter 类的新实例。
                        //true表示如果该文件存在,则可以向其追加。false表示将其全部重写。如果该文件不存在,则此构造函数将创建一个新文件。


  (7) StreamWriter (String, Boolean, Encoding, Int32) // 使用指定编码和缓冲区大小,为指定路径上的指定文件初始化 StreamWriter 类的新实例。
                           //true表示如果该文件存在,则可以向其追加。false表示将其全部重写。如果该文件不存在,则此构造函数将创建一个新文件。 

2. StreamWriter的方法

  (1) Write(string)    //直接将string写入到文件中

  (2) WriteLine(string)   //写完string加了一个回车换行

  (3) Close()   // 关闭当前的 StreamWriter 对象和基础流

3.StreamReader的构造函数

  (1) StreamReader(Stream) //为指定的流初始化 StreamReader 类的新实例。 

  (2)StreamReader(String) //为指定的文件名初始化 StreamReader 类的新实例。 (本例中使用)

  (3)StreamReader(Stream, Boolean) //用指定的字节顺序标记检测选项,为指定的流初始化 StreamReader 类的一个新实例。 

  (4)StreamReader(Stream, Encoding) //用指定的字符编码为指定的流初始化 StreamReader 类的一个新实例。 

  (5)StreamReader(String, Boolean) //为指定的文件名初始化 StreamReader 类的新实例,带有指定的字节顺序标记检测选项。 

  (6)StreamReader(String, Encoding) //用指定的字符编码,为指定的文件名初始化 StreamReader 类的一个新实例。 

  (7)StreamReader(Stream, Encoding, Boolean) //为指定的流初始化 StreamReader 类的新实例,带有指定的字符编码和字节顺序标记检测选项。 

  (8)StreamReader(String, Encoding, Boolean) //为指定的文件名初始化 StreamReader 类的新实例,带有指定的字符编码和字节顺序标记检测选项。 

  (9)StreamReader(Stream, Encoding, Boolean, Int32) //为指定的流初始化 StreamReader 类的新实例,带有指定的字符编码、字节顺序标记检测选项和缓冲区大小。 

  (10)StreamReader(String, Encoding, Boolean, Int32) //为指定的文件名初始化 StreamReader 类的新实例,带有指定字符编码、字节顺序标记检测选项和缓冲区大小。

4.StreamReader的方法

(1) ReadLine() //从当前流中读取一行字符并将数据作为字符串返回。
(2) Read() //单字符读取
(3) Dispose() //释放非托管资源,例如文件句柄,网络连接等。
 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Web;
 5 using System.IO;
 6 using System.Text;
 7 
 8 namespace pmu.Models
 9 {
10     public class LogSave
11     {
12         //创建日志 + 更新日志
13         public bool CreateLogTxt(string msg)
14         {
15             string strPath;
16             DateTime dateTime = DateTime.Now;
17             try
18             {
19                 //strPath = Directory.GetCurrentDirectory() + "\Log";//winform工程in目录下创建日志文件夹   获取应用程序的当前工作目录。
20                 strPath = "D:\PMU\test\op_save\Log";                 
22                 if (Directory.Exists(strPath) == false)  //判断文件夹是否存在 如果 strPath 引用现有目录,则为 true;否则为 false。
23                 {
24                     Directory.CreateDirectory(strPath);  //创建文件夹
25                 }
26 
27                 strPath = strPath + "\" + dateTime.ToString("yyyy");
28                 if (Directory.Exists(strPath) == false)
29                 {
30                     Directory.CreateDirectory(strPath);
31                 }
32 
33                 strPath = strPath + "\" + dateTime.Year.ToString() + "-" 
                 + dateTime.Month.ToString() + "-" + dateTime.Day.ToString() +".txt"; 34 35 StreamWriter FileWriter = new StreamWriter(strPath, true); //创建日志文件 36 FileWriter.WriteLine("[" + dateTime.ToString("yyyy-MM-dd HH:mm:ss") + "] " + msg); 37 FileWriter.Close(); 38 return true; 39 } 40 catch (Exception ex) 41 { 42 string str = ex.Message.ToString(); 43 return false; 44 } 45 } 46 47 //读取日志 48 public string ReadLogTxt(string fileName) 49 { 52 string filePath = "D:\PMU\test\op_save\Log"; 53 string strYear = fileName.Substring(0, 4); 54 filePath = filePath + "\" + strYear + "\" + fileName; 55 56 if (System.IO.File.Exists(filePath) == false) //判断文件是否存在 57 { 58 return null; 59 } 60 StreamReader streamReader = new StreamReader(filePath); 61 62 string str = ""; 63 string strLine = streamReader.ReadLine(); 64 while ((strLine) != null) 65 { 66 67 str += strLine.ToString() + "<br/>"; 68 strLine = streamReader.ReadLine(); 69 70 } 71 streamReader.Close(); 72 streamReader.Dispose(); 73 return str; 74 } 75 } 76 }

ps:这两个类还有些方法和属性没用到,以后再更新

原文地址:https://www.cnblogs.com/panpan-v1/p/4449898.html