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

    }

  • 相关阅读:
    6-4.粗体标签
    [Unity3D] 如何实现点击按钮退出游戏
    [Unity3D] 载入游戏地图时背景图片随机切换 & 数字百分比进度条
    [Unity3D] 鼠标点击图片移动效果
    [3DMAX]如何将骨骼与模型绑定在一起(蒙皮) & 如何实现自动化人物模型蒙皮
    [Unity 3D]用鼠标滚轮实现镜头放大和缩放,并添加距离限制
    [Unity3D] 如何实现围绕旋转
    [Unity3D] 如何实现注视旋转
    Css 图片自适应
    Scss 定义内层class的简单写法
  • 原文地址:https://www.cnblogs.com/xuxml/p/12192037.html
Copyright © 2011-2022 走看看