寻找randomaccess文件时出现Stack Overflow错误

时间:2015-04-09 05:21:24

标签: java file overflow randomaccessfile

所以我正在编写一个程序,主要是说一个单词是否在提供的字典中。字典是randomaccessfile,与字典对应的索引也是randomaccessfile。这两个文件都很大。

我使用递归二进制搜索来检查单词是否在字典中。当我做indexFile.lenth()/ 4来获取索引的最大长度,然后计算mid并做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";}

0 个答案:

没有答案