Ошибка переполнения стека при поиске файла randomaccess
Поэтому я пишу программу, которая по сути говорит, есть ли слово в словаре. Словарь является файлом randomaccessfile, а индекс, соответствующий словарю, также является файлом randomaccessfile. Оба файла довольно большие.
Я использую рекурсивный бинарный поиск, чтобы проверить, есть ли слово в словаре. Когда я делаю indexFile.lenth()/4 для получения максимальной длины индекса, затем вычисляю середину и делаю indexFile.seek(4*mid), я получаю ошибку переполнения стека и не понимаю, почему
long mid = (max - min)/2;
indexFile.seek(4*mid);
int wordposition = indexFile.readInt();
int nextword = indexFile.readInt();
int wordlength = (nextword - wordposition)/2;
wordsFile.seek(wordposition);
String finalword = "";
for(int i=0; i<wordlength;i++);
{
finalword = finalword + wordsFile.readChar();
}
if (word.equals(finalword))
{
return word;
}
else if (finalword.compareTo(word) > 0)
{
binarysearch(word, min, (mid - 1));
}
else
{
binarysearch(word, (mid+1), max);
System.out.println("yoooo");
}
if (min > max)
{ return "Word not found";}