最快的方式在大型在线文本文件中查找文本
本文关键字:文本 文件 查找 在线 大型 方式 | 更新日期: 2023-09-27 18:04:11
有一个只包含文本的url
格式为
firstWord~:::~secondWord
目标是寻找secondWord
,然后Console.WriteLine
和firstWord
。
如果我不得不猜测,我会说使用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];