Arquivo + Lista Encadeada

1 resposta
N

Olá pessoal, estou com um pequeno problema na seguinte método:

public static void readRecords() {
        //Carrega todo o conteúdo do arquivo
        String nome, endereco, fone, mail, breve, registroP;
        int anoConc;
        String nomeInst, cidade, uF;

        String dataI;
        String dataT;
        String descricaoA;
        String empresa;
        String nCidade;
        String estado;

        String modelo;
        int capacidadePassageiros;
        int horasDeVoo;
        int i = 0, j =0;
        int qtdeTit, qtdeExp, qtdeTip;
        
        try {
            while (moreRecords) {
                nome = inputPiloto.readUTF();
                endereco = inputPiloto.readUTF();
                fone = inputPiloto.readUTF();
                mail = inputPiloto.readUTF();
                breve = inputPiloto.readUTF();
                registroP = inputPiloto.readUTF();
                System.out.println("Lendo os outros arquivos:");
                for (i = 0; i < cadPiloto.get(j).qtdeTit; i++) {
                    System.out.println("Lendo as titulações");
                    anoConc = inputTitulacao.readInt();
                    nomeInst = inputTitulacao.readUTF();
                    cidade = inputTitulacao.readUTF();
                    uF = inputTitulacao.readUTF();
                    cadTitulacao.add(new Titulacao(anoConc, nomeInst, cidade, uF));
                }
                for (i = 0; i < cadPiloto.get(j).getQtdeExp(); i++) {
                    System.out.println("Lendo as Experiencias");
                    dataI = inputExperiencia.readUTF();
                    dataT = inputExperiencia.readUTF();
                    descricaoA = inputExperiencia.readUTF();
                    empresa = inputExperiencia.readUTF();
                    nCidade = inputExperiencia.readUTF();
                    estado = inputExperiencia.readUTF();
                    cadExpProfissional.add(new ExpProfissional(dataI, dataT, descricaoA, empresa, nCidade, estado));
                }
                for (i = 0; i < cadPiloto.get(j).getQtdeTip(); i++) {
                    System.out.println("Lendo os Tipos");
                    modelo = inputTipo.readUTF();
                    capacidadePassageiros = inputTipo.readInt();
                    horasDeVoo = inputTipo.readInt();
                    cadTipoAeronave.add(new TipoAeronave(modelo, capacidadePassageiros, horasDeVoo));
                }
                System.out.println("Usando o construtor");
                cadPiloto.add(new Piloto(nome, endereco, fone, mail, breve, registroP, cadTitulacao, cadExpProfissional, cadTipoAeronave));
                cadPiloto = null;
                j++;
            }
        } catch (EOFException e){
            moreRecords = false;
        } 
        catch (IOException e) {
            System.err.println("[readRecords] - Erro durante leitura do arquivo\n" + e.toString());
            System.exit(1);
        }
    }

Enfim, Resumindo:
O que eu quero é que ele faça a leitura dos arquivos que vou abrir (Piloto.dat, ExpProfissional.dat, Titulacao.dat e TipoAeronave.dat)
O problema é que quando ele vai ler as titulaçoes, a exp ou o tipo, ele não entra no for.

Lembrando que estou usando 3 listas encadeadas dentro de uma.

Estou com este pequeno problema no projeto de LP1, poderiam me ajudar?

Desde já, obrigado.

1 Resposta

drsmachado

Veja isso:

int i = 0, j =0;
...
for (i = 0; i < cadPiloto.get(j).qtdeTit; i++) {
...
for (i = 0; i < cadPiloto.get(j).getQtdeExp(); i++) {
...
for (i = 0; i < cadPiloto.get(j).getQtdeTip(); i++) {

Imagine se o valor de cadPiloto.get(j).qtdeTitl (não existe um getter para isso?) é 200. A variável i partirá para os demais for com o valor de 200. Você deve usar a inicialização em cada laço e não antes deles.

Criado 9 de setembro de 2013
Ultima resposta 9 de set. de 2013
Respostas 1
Participantes 2