【发布时间】:2017-12-12 03:43:29
【问题描述】:
我的网站包含许多大型 CSV 文件(每个文件最多 100,000 行)。从每个 CSV 文件中,我需要读取文件中的最后一行。当我在读取文件内容之前将文件保存在磁盘上时,我知道如何解决该问题:
var url = "http://data.cocorahs.org/cocorahs/export/exportreports.aspx?ReportType=Daily&Format=csv&Date=1/1/2000&Station=UT-UT-24"
var client = new System.Net.WebClient();
var tempFile = System.IO.Path.GetTempFileName();
client.DownloadFile(url, tempFile);
var lastLine = System.IO.File.ReadLines(tempFile).Last();
有什么方法可以在不将临时文件保存在磁盘上的情况下获取最后一行? 我试过了:
using (var stream = client.OpenRead(seriesUrl))
{
using (var reader = new StreamReader(stream))
{
var lastLine = reader.ReadLines("file.txt").Last();
}
}
但 StreamReader 类没有 ReadLines 方法...
【问题讨论】:
-
如果你只想要某些内容的最后一部分,你应该实现HTTP Range headers。
标签: c# csv io webclient streamreader