我需要知道.txt文件中的确切位置是否有字符串。 我知道如何使用Contains方法找到具体的字符串,但由于我不需要搜索整个文件(字符串将始终位于同一位置),我正在尝试找到最快的解决方案。
if (searchedText.Contains(item))
{
Console.WriteLine("Found {0}",item);
break;
}
由于
答案 0 :(得分:2)
如果它是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);
...
}
注意:
答案 1 :(得分:1)
if(searchedText.SubString(i, l).Contains(item))
其中i
是起始索引,l
是您要搜索的字符串的长度。
由于您使用的是Contains,因此l
中有一些余量。