Java 该方法返回false,而实际上它是true

Java 该方法返回false,而实际上它是true,java,Java,我有一个方法去处理一个随机访问文件,注册时保留一个字符“a”,如果它是活动的,保留一个字符“B”,如果不是,则保留一个带有记录中字节数的int,然后注册。当代码等于该方法时会发生什么,让位于返回true;但最终我返回了false public boolean seEncuentra(int pos , char[] codigo) { clsPersona contacto = new clsPersona(); //object contact try {

我有一个方法去处理一个随机访问文件,注册时保留一个字符“a”,如果它是活动的,保留一个字符“B”,如果不是,则保留一个带有记录中字节数的int,然后注册。当代码等于该方法时会发生什么,让位于返回true;但最终我返回了false

public  boolean seEncuentra(int pos , char[] codigo) {

    clsPersona contacto = new clsPersona();  //object contact
    try {

            // buscar registro apropiado en el archivo
            abrirArchivo();
            archivo.seek(pos);
            contacto.estado = archivo.readUTF();
            contacto.setTAMANIO(archivo.readInt());
            if("A".equals(contacto.estado))
            {
                for (int i = 0; i < 3; i++) {
                    contacto.codigo[i] = archivo.readChar();
                }
                if(Arrays.equals(codigo, contacto.codigo))
                {
                    return true;    //enter here and ends up returning false at the end
                }
                else
                {
                    pos+=contacto.TAMANIO;
                    seEncuentra(pos, codigo);
                }

            }
            else
            {
                pos+=contacto.TAMANIO;
                seEncuentra(pos, codigo);
            }
          cerrarArchivo();
        }


    catch (Exception ex) {
        System.out.println(ex.getMessage());
        ex.printStackTrace();
        cerrarArchivo();
        return false;
    }
    return false;
}
public boolean seencumentra(int-pos,char[]codigo){
clsPersona contacto=新建clsPersona();//对象接触
试一试{
//公共汽车登记处
abirarchivo();
自动搜索(pos);
contacto.estado=archivo.readUTF();
contacto.setTAMANIO(archivo.readInt());
如果(“A.”等于(contacto.estado))
{
对于(int i=0;i<3;i++){
contacto.codigo[i]=archivo.readChar();
}
if(数组等于(codigo,contacto.codigo))
{
return true;//在此处输入,最后返回false
}
其他的
{
pos+=联系人TAMANIO;
SEENCUNTRA(pos、codigo);
}
}
其他的
{
pos+=联系人TAMANIO;
SEENCUNTRA(pos、codigo);
}
cerrarchivo();
}
捕获(例外情况除外){
System.out.println(例如getMessage());
例如printStackTrace();
cerrarchivo();
返回false;
}
返回false;
}

递归,但不返回递归的值。改变


每个位置,您递归

递归而不返回递归值。改变

你反复出现的每个地方

seEncuentra(pos, codigo);
return seEncuentra(pos, codigo);