最快的方式在大型在线文本文件中查找文本

本文关键字:文本 文件 查找 在线 大型 方式 | 更新日期: 2023-09-27 18:04:11

有一个只包含文本的url

格式为

firstWord~:::~secondWord

目标是寻找secondWord,然后Console.WriteLinefirstWord

如果我不得不猜测,我会说使用WebClient将文本文件下载到string中,然后使用regex查看它以找到它。

问题是这个文件大约有1gb,我不确定最快的方法是什么。

任何想法?谢谢!

最快的方式在大型在线文本文件中查找文本

下面是我能想到的最快的方法。这并不是说你不能到处刮虱子……很高兴收到其他反馈,看看我们是否可以进一步简化这一点。

// WebClient is very bulky with a lot of stuff we don't need.
// By dealing with the request, response and stream ourself we can get the string a bit faster.
WebRequest request = WebRequest.Create("http://www.UrlToDownloadStringFrom.com");
WebResponse response = request.GetResponse();
Stream stream = response.GetResponseStream();
StreamReader streamReader = new StreamReader(stream);
// the result should return "firstWord~:::~secondWord" as expected.
string result = streamReader.ReadToEnd();
// split the string apart whenever the string ~:::~ appears within it.
string[] resultSplit = result.Split(new string[] { "~:::~" }, StringSplitOptions.None);
// resultSplit[0] is firstWord, resultSplit[1] is second word
string secondWord = resultSplit[1];