zoukankan      html  css  js  c++  java
  • 【C#】 TxtHelper

    public static class TxtHelper
    {
    /// <summary>
    /// 在txt文件中加一条数据
    /// </summary>
    /// <param name="folderName">文件夹名称</param>
    /// <param name="fileName">文件名称</param>
    /// <param name="line">信息</param>
    public static void WriteLine(string folderName, string fileName, string line)
    {
    string LogPath = folderName;
    if (!Directory.Exists(LogPath))
    {
    Directory.CreateDirectory(LogPath);
    }
    string filePath = LogPath + fileName;
    using (FileStream stream = File.Open(filePath, FileMode.Append, FileAccess.Write, FileShare.Write))
    {
    using (StreamWriter sw = new StreamWriter(stream))
    {
    sw.WriteLine(line);
    }
    }
    }
    /// <summary>
    /// 在txt文件中加多条数据
    /// </summary>
    /// <param name="folderName">文件夹名称</param>
    /// <param name="fileName">文件名称</param>
    /// <param name="lines">多条信息</param>
    public static void WriteLines(string folderName, string fileName, List<string> lines)
    {
    string LogPath = folderName;
    if (!Directory.Exists(LogPath))
    {
    Directory.CreateDirectory(LogPath);
    }
    string filePath = LogPath + fileName;
    using (FileStream stream = File.Open(filePath, FileMode.Append, FileAccess.Write, FileShare.Write))
    {
    using (StreamWriter sw = new StreamWriter(stream))
    {
    lines.ForEach(e =>
    {
    sw.WriteLine(e);

    });
    }
    }
    }
    /// <summary>
    /// 在txt文件中覆盖一条数据
    /// </summary>
    /// <param name="folderName">文件夹名称</param>
    /// <param name="fileName">文件名称</param>
    /// <param name="line">信息</param>
    public static void ReWriteLine(string folderName, string fileName, string line)
    {
    string LogPath = folderName;
    if (!Directory.Exists(LogPath))
    {
    Directory.CreateDirectory(LogPath);
    }
    string filePath = LogPath + fileName;
    using (FileStream stream = File.Open(filePath, FileMode.Create, FileAccess.Write, FileShare.Write))
    {
    using (StreamWriter sw = new StreamWriter(stream))
    {
    sw.WriteLine(line);
    }
    }
    }
    /// <summary>
    /// 在txt文件中覆盖多条数据
    /// </summary>
    /// <param name="folderName">文件夹名称</param>
    /// <param name="fileName">文件名称</param>
    /// <param name="line">信息</param>
    public static void ReWriteLines(string folderName, string fileName, List<string> lines)
    {
    string LogPath = folderName;
    if (!Directory.Exists(LogPath))
    {
    Directory.CreateDirectory(LogPath);
    }
    string filePath = LogPath + fileName;
    using (FileStream stream = File.Open(filePath, FileMode.Create, FileAccess.Write, FileShare.Write))
    {
    using (StreamWriter sw = new StreamWriter(stream))
    {
    lines.ForEach(e =>
    {
    sw.WriteLine(e);

    });
    }
    }
    }
    /// <summary>
    /// 在txt文件中取出所有数据
    /// </summary>
    /// <param name="folderName">文件夹名称</param>
    /// <param name="fileName">文件名称</param>
    public static List<string> GetAllLines(string folderName, string fileName)
    {
    Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
    string LogPath = folderName;
    if (!Directory.Exists(LogPath))
    {
    Directory.CreateDirectory(LogPath);
    File.WriteAllText(folderName + fileName, "");
    }
    string filePath = LogPath + fileName;

    FileStream stream = null;
    StreamReader reader = null;
    List<string> baseList = new List<string>();
    try
    {
    stream = new FileStream(filePath, FileMode.Open);
    reader = new StreamReader(stream, Encoding.GetEncoding("utf-8"));

    bool isNotNullLine = true;

    while (isNotNullLine)
    {
    string line = reader.ReadLine();
    if (string.IsNullOrEmpty(line))
    {
    isNotNullLine = false;
    }
    else
    {
    baseList.Add(line);
    }
    }
    }
    catch (Exception ex)
    {
    Console.WriteLine(ex.Message);
    }
    finally
    {
    if (stream != null)
    {
    stream.Close();
    stream.Dispose();
    }
    if (reader != null)
    {
    reader.Close();
    reader.Dispose();
    }
    }
    if (baseList.Count == 0)
    {
    return new List<string>();
    }
    return baseList;

    }
    /// <summary>
    /// 在txt文件中取出输入行之后的所有数据
    /// </summary>
    /// <param name="folderName">文件夹名称</param>
    /// <param name="fileName">文件名称</param>
    public static List<string> GetNextAllLines(string folderName, string fileName, string inputline)
    {
    Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
    string LogPath = folderName;
    if (!Directory.Exists(LogPath))
    {
    Directory.CreateDirectory(LogPath);
    }
    string filePath = LogPath + fileName;

    FileStream stream = null;
    StreamReader reader = null;
    List<string> baseList = new List<string>();
    try
    {
    stream = new FileStream(filePath, FileMode.Open);
    reader = new StreamReader(stream, Encoding.GetEncoding("utf-8"));

    bool isNotNullLine = true;

    while (isNotNullLine)
    {
    string line = reader.ReadLine();
    if (string.IsNullOrEmpty(line))
    {
    isNotNullLine = false;
    }
    else
    {
    if (line == inputline)
    {
    break;
    }

    }
    }

    while (isNotNullLine)
    {
    string line = reader.ReadLine();
    if (string.IsNullOrEmpty(line))
    {
    isNotNullLine = false;
    }
    else
    {

    baseList.Add(line);
    }
    }
    }
    catch (Exception ex)
    {
    Console.WriteLine(ex.Message);
    }
    finally
    {
    if (stream != null)
    {
    stream.Close();
    stream.Dispose();
    }
    if (reader != null)
    {
    reader.Close();
    reader.Dispose();
    }
    }
    return baseList;

    }
    /// <summary>
    /// 获取文件夹下所有后缀是fileType文件
    /// </summary>
    /// <param name="folderName">文件夹</param>
    /// <param name="fileType">文件类型</param>
    /// <returns></returns>
    public static List<string> GetAllFiles(string folderName, string fileType)
    {
    var files = Directory.GetFiles(folderName, $"*.{fileType}");
    List<string> historyList = new List<string>();
    foreach (var file in files)
    historyList.Add(Path.GetFileName(file));
    return historyList;
    }

    }

  • 相关阅读:
    wordpress 自己制作子主题 child theme
    wordpress 主题开发
    python的曲线平滑工具,及python画一条线中包含不同粗细不同颜色的画线方法
    openfire 使用已有的数据库作为用户认证数据库 Custom Database Integration Guide
    How to store scaling parameters for later use
    在android上跑 keras 或 tensorflow 模型
    Win10更新搜狗输入法后重启输入密码蓝屏
    Audition CC2019 MME设备内部错误怎么解决!
    数据库优化解决方案
    微信小程序文本如何换行
  • 原文地址:https://www.cnblogs.com/xuxml/p/12192037.html
Copyright © 2011-2022 走看看