【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); } 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 null; } 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; } }
标签:string,stream,C#,LogPath,folderName,TxtHelper,reader,Directory 来源: https://www.cnblogs.com/xuxml/p/12192037.html