在C#中从末尾(从头到尾)读取大文件[重复]

问题描述 投票:2回答:2
我有一个文本文件,其中包含价格数据序列。该问题可能与任何历史数据(如温度,空气湿度,价格,日志文件等)的悠久历史匹配... ...>

我的历史记录文件的标题如下所示:enter image description here

如果我想读取和处理一个太大的文件,通常选择以下代码:

using (FileStream fs = File.Open(path, FileMode.Open, FileAccess.Read, FileShare.ReadWrite)) using (BufferedStream bs = new BufferedStream(fs)) using (StreamReader sr = new StreamReader(bs)) { string line; while ((line = sr.ReadLine()) != null) { // Process Data } }

在我的情况下,每1000毫秒创建一条记录。最新数据位于文件末尾。尝试处理最新数据时会出现问题。 

示例:我想生成最近30天的平均值。从文件的末尾开始并朝起始处移动,直到达到X天的阈值,这将是最有效的。上面的示例代码将读取整个文件,在这种情况下几乎无法使用。每次我需要更新最近的数据指标时,都是最坏的情况。当然,此问题适用于要处理最后x个元素的任何操作。

是否有从文件末尾读取的功能?

我有一个文本文件,其中包含价格数据序列。该问题可能与历史数据(如温度,空气湿度,价格,日志文件等)的任何长期历史匹配... ...我的头……

c# file bigdata streamreader
2个回答
1
投票
您可以使用

Seek


0
投票
尝试以下代码。最后一行可能为空白。不确定处理最后一行的最佳方法是否为空白。
© www.soinside.com 2019 - 2024. All rights reserved.