跳至内容
九溪
溪水润知林,滴露启慧心
用户工具
登录
站点工具
搜索
工具
显示页面
过去修订
反向链接
最近更改
媒体管理器
网站地图
登录
>
最近更改
媒体管理器
网站地图
您在这里:
Home
»
知识标签
»
C#
»
C# 快速提取文本文件最后一行数据
您的足迹:
wiki:csharp:read-file-lastline
本页面只读。您可以查看源文件,但不能更改它。如果您觉得这是系统错误,请联系管理员。
====== C# 快速提取文本文件最后一行数据 ====== 提取文本最后一行数据的方法 <code csharp> /// <summary> /// 提取文本最后一行数据 /// </summary> /// <param name="fs">文件流</param> /// <returns>最后一行数据</returns> private string GetLastLine(FileStream fs) { int seekLength = (int)(fs.Length < 1024 ? fs.Length : 1024); // 这里需要根据自己的数据长度进行调整,也可写成动态获取,可自己实现 byte[] buffer = new byte[seekLength]; fs.Seek(-buffer.Length, SeekOrigin.End); fs.Read(buffer, 0, buffer.Length); string multLine = System.Text.Encoding.UTF8.GetString(buffer); string[] lines = multLine.Split(new string[] { "\\n" }, StringSplitOptions.RemoveEmptyEntries); string line = lines[lines.Length - 1]; return line; } </code> 使用方法 <code csharp> using (FileStream fs = new FileStream(fileName, FileMode.Open, FileAccess.Read, FileShare.ReadWrite)) using (StreamReader sr = new StreamReader(fs)) { // 读取首行 string line = sr.ReadLine(); SDataAircraft data = JsonWrapper.DeserializeObject<SDataAircraft>(line); if (data == null) { sr.Close(); fs.Close(); continue; } info.StartTime = Convert.ToDateTime(data.timeStamp); // 读取末行 line = GetLastLine(fs); //... sr.Close(); fs.Close(); } </code> 另外,在同时读写同一个文件时,需要设置文件流的FileShare.ReadWrite: 写文件: <code csharp> using (FileStream fs = new FileStream(fileName, FileMode.Append, FileAccess.Write, FileShare.ReadWrite)) using (StreamWriter sw = new StreamWriter(fs)) { sw.WriteLine(data); sw.Close(); fs.Close(); } </code> 读文件: <code csharp> using (FileStream fs = new FileStream(fileName, FileMode.Open, FileAccess.Read, FileShare.ReadWrite)) using (StreamReader sr = new StreamReader(fs)) { // 读取首行 string line = sr.ReadLine(); //... sr.Close(); fs.Close(); } </code> 参考: - [[https://blog.csdn.net/cxu123321/article/details/94591807|C# 高效提取txt文档最后一行数据]] - [[https://codeday.me/bug/20190328/845105.html|c# – 如何有效地只读取文本文件的最后一行]] - [[https://stackoverflow.com/questions/452902/how-to-read-a-text-file-reversely-with-iterator-in-c-sharp|How to read a text file reversely with iterator in C#]]
wiki/csharp/read-file-lastline.txt
· 最后更改: 2023/01/03 15:25 由
127.0.0.1
页面工具
显示页面
过去修订
反向链接
回到顶部