我需要知道 .txt 文件的确切位置是否有一些字符串。我知道如何使用 Contains 方法找到具体的字符串,但由于我不需要搜索整个文件(字符串将始终位于同一位置),我试图找到最快的解决方案。
if (searchedText.Contains(item))
{
Console.WriteLine("Found {0}",item);
break;
}
谢谢
我需要知道 .txt 文件的确切位置是否有一些字符串。我知道如何使用 Contains 方法找到具体的字符串,但由于我不需要搜索整个文件(字符串将始终位于同一位置),我试图找到最快的解决方案。
if (searchedText.Contains(item))
{
Console.WriteLine("Found {0}",item);
break;
}
谢谢
如果它是 UTF-8 格式并且不能保证是 ASCII,那么您只需要读取相关的字符数。就像是:
using (var reader = File.OpenText("test.txt"))
{
char[] buffer = new char[16 * 1024];
int charsLeft = location;
while (charsLeft > 0)
{
int charsRead = reader.Read(buffer, 0, Math.Min(buffer.Length,
charsLeft));
if (charsRead <= 0)
{
throw new IOException("Incomplete data"); // Or whatever
}
charsLeft -= charsRead;
}
string line = reader.ReadLine();
bool found = line.StartsWith(targetText);
...
}
笔记:
if(searchedText.SubString(i, l).Contains(item))
wherei
是起始索引,l
是您要搜索的字符串的长度。
由于您使用的是 Contains,因此您在l
.