首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在C#中读取文件最后一行的一种高效方法

在C#中读取文件最后一行的一种高效方法
EN

Stack Overflow用户
提问于 2012-02-11 19:41:54
回答 4查看 5K关注 0票数 0

你知道如何使用\n读取包含大约30行的文件的最后一行或最后两行,并关注性能速度吗?

编辑:比以下内容更快的东西:

代码语言:javascript
复制
string[] splitedArray= input.Split('\n');
string lastLine = splitedArray[splitedArray.Length-1];

使用c#

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-02-11 19:47:26

如果创建一个新的IO.FileStream()对象,就会有一个.Seek()方法,它允许您将文件的结尾指定为要查找的位置的一部分。然而,在这一点上,没有直接的方法来查看最后一行从哪里开始。你将不得不向后走寻找一条线,或者如果你知道最后一条线是什么样子(因此它有多长),你也许能够猜测你需要往回走多远,然后再走一点。使用FileStream.CanSeek属性确定当前实例是否支持查找。有关其他信息,请参阅Stream.CanSeek。

代码语言:javascript
复制
FileStream  fileStream = new FileStream(fileName, FileMode.Open)
// Set the stream position to the end of the file.
fileStream.Seek(0, SeekOrigin.End);

然后循环一遍,直到得到/n

你也可以读到另一个问题:How to read a text file reversely with iterator in C#

票数 3
EN

Stack Overflow用户

发布于 2012-02-11 19:49:14

从我的脑海中

代码语言:javascript
复制
string lastline = input.Substring(
   input.LastIndexOf('\n'));
票数 11
EN

Stack Overflow用户

发布于 2012-02-11 20:28:11

如果您在读取任何文件时需要更好的性能,您可以使用内存映射文件读/写,即在低级API上工作。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9239910

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档