1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Erro ao carregar arquivo

Olá galera, seguinte, estou fazendo um projeto de cadastro de funcionarios para a faculdade, e nele ao iniciar o programa deve carregar de um arquivo os funcionarios já cadastrados.

Salvei serializado com a classe ObjectOutputStream, parece que o erro não está no metodo de salvar e sim no de carregar, pois já mandei imprimir na tela o nome do funcionario antes de salvar e ele imprimiu certo, porém na hora de imprimir o metodo de carregar ele imprime sempre null.

Outra coisa estranha é que existem outros dois objetos que salvei em arquivo da mesma maneira e carreguei também da mesma maneira e eles funcionam.

Segue os codigos:

//Codigo de salvar objeto no arquivo, Classe empregado que é abstrata e mãe de duas outras classes
public void gerarRelatorioCadastro(ArrayList<Empregado> empregado)throws Exception{
    try{
        FileOutputStream novo=new FileOutputStream(this.getNovo()+"\\EmpregadosCadastrados.txt");
        ObjectOutputStream gravar=new ObjectOutputStream(novo);
        System.out.println(empregado.get(0).getNome());
        gravar.writeObject(empregado);
        gravar.close();
    }
    catch(Exception e){
        System.err.println(e);
    }
}

//Codigo de carregar arquivo e retornar uma ArrayList de empregado que sera adicionada a outra na main
public ArrayList<Empregado> CarregarEmpregados() throws Exception{
    ArrayList<Empregado> empregado=new ArrayList<Empregado>();
    File existencia=new File(this.getNovo()+"\\EmpregadosCadastrados.txt");
    FileInputStream carregar=new FileInputStream(existencia);
    ObjectInputStream ler=new ObjectInputStream(carregar);
        //O codigo entra nesse if, já testei
    if(existencia.exists()){
        try{
                while(true){
                  empregado.addAll((ArrayList<Empregado>) ler.readObject());
            }
        }
        catch(EOFException e){
        }
    }
    else{
        System.out.println("Sem empregados cadastrados no momento");
        ler.close();
        return null;
    }
    ler.close();
    return empregado;
}

Bom é isso, se tiverem alguma duvida me falem.

  • O problema apresenta algum stacktrace(erro) no console ?

    Matheus Lubarino   25 de jun de 2015
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

0 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags arquivos arraylist ou faça a sua própria pergunta.