如果我想读取和处理一个太大的文件,通常选择以下代码:
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个元素的任何操作。
是否有从文件末尾读取的功能?
我有一个文本文件,其中包含价格数据序列。该问题可能与历史数据(如温度,空气湿度,价格,日志文件等)的任何长期历史匹配... ...我的头……
Seek