zoukankan      html  css  js  c++  java
  • 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:这两个类还有些方法和属性没用到,以后再更新

  • 相关阅读:
    apache安全—用户访问控制
    hdu 3232 Crossing Rivers 过河(数学期望)
    HDU 5418 Victor and World (可重复走的TSP问题,状压dp)
    UVA 11020 Efficient Solutions (BST,Splay树)
    UVA 11922 Permutation Transformer (Splay树)
    HYSBZ 1208 宠物收养所 (Splay树)
    HYSBZ 1503 郁闷的出纳员 (Splay树)
    HDU 5416 CRB and Tree (技巧)
    HDU 5414 CRB and String (字符串,模拟)
    HDU 5410 CRB and His Birthday (01背包,完全背包,混合)
  • 原文地址:https://www.cnblogs.com/panpan-v1/p/4449898.html
Copyright © 2011-2022 走看看