1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

registo de utilizadores e gravação para ficheiro de objetos

Discussão em 'Programação' iniciada por xinoj, 4 de Fevereiro de 2013. (Respostas: 0; Visualizações: 534)

  1. Boas

    Tenho um projeto que estou a desenvolver em java e tenho uma duvida no registo de utilizadores, acontece o seguinte tenho 3 utilizadores (docente, funcionario e aluno), tenho que fazer o resgisto destes 3 utilizadores com o username, password e tipo de utilizador (docente, funcionario e aluno) mas acontece que eu não estou a conseguir gravar para ficheiro n sei o que estou a fazer mal e gostaria que alguem me ajudasse, a lista fica sempre vazia, peço desculpa mas eu e programação somos duas coisas que não combinamos la mto bem lol, se me podesse dizer o que tenho mal e me mostrarem o que deveria mudar e meter bem agradecia

    classe Escola com o main
    PHP:
    import java.io.*;import java.util.*;


    public class 
    Escola
    {
      public static 
    void main(String[] argsthrows IOExceptionFileNotFoundExceptionClassNotFoundException {


        
    //criação de objecto
            
        
    Ficheiro f = new Ficheiro();
        
    Menu m = new Menu();
                    
        
    f.LeUtilizadores();
                           
        
    //entrada no menu
            
    m.menuInicio();     
      }
    }
    Classe GereEscola onde esta o metodo registo de utilizadores
    PHP:
    import java.io.*;import java.util.*;


    public class 
    GereEscola
    {
     
    // registo de utilizadores
       
    public void registo() throws IOException
       
    {
           List<
    Utilizadoreslista = new ArrayList<Utilizadores>(); 
           
    String userpass;
           
    int tipo,x;
           
           
    System.out.println("************* REGISTO **************");
           
    System.out.println("USERNAME: ");
           
    userLeitura.LeString();
           
    System.out.println("PASSWORD: ");
           
    passLeitura.LeString();
           
           
    System.out.println("************* QUAL O TIPO DE UIILIZADOR **************");
           
    System.out.println("*********  Escolha uma das seguintes opções  *********");
           
    System.out.println("*********           1 - Docente              *********");
           
    System.out.println("*********           2 - Aluno                *********");
           
    System.out.println("*********           3 - Funcionario          *********");
           
    System.out.println("*********           4 - Voltar               *********");
           
    System.out.println("*                                                    *");
           
    System.out.println("******************************************************");
           
    x=Leitura.LeInt();
           switch (
    x) {
           case 
    1
                
    lista.add(new Utilizadores(user,pass,1));
                for(
    Utilizadores utilizador lista)
                    if(
    utilizador.getUser() == null ) {
                        
    Ficheiro f = new Ficheiro();
                        
    f.GravaUtilizadoresFicheiro(lista);
                        
    System.out.println("Docente registado");
                    }else{
                        
    System.out.println("O utilizador com o username "+user+" já existe");
                }
           case 
    2:
                
    lista.add(new Utilizadores(user,pass,2));
                for(
    Utilizadores utilizador lista)
                    if(
    utilizador.getUser() == null ) {
                        
    Ficheiro f = new Ficheiro();
                        
    f.GravaUtilizadoresFicheiro(lista);
                        
    System.out.println("Aluno registado");
                    }else{
                        
    System.out.println("O utilizador com o username "+user+" já existe");
                }
          }
    }
    classe Ficheiro
    PHP:
    import java.io.*;import java.util.*;

    public class 
    Ficheiro 
    {
        
    // utilizadores
       
    public void GravaUtilizadoresFicheiro(List<Utilizadoreslistathrows IOException{
            
            
    lista = new ArrayList <Utilizadores>();
            
    File file = new File("users.dat");
            
            try {
               
                if (!
    file.exists()) {
                    
    //cria um ficheiro (vazio)
                    
    file.createNewFile();
                }


                
    FileOutputStream os = new FileOutputStream(new File("users.dat"));
                
    ObjectOutputStream oos = new ObjectOutputStream(os);
            
                
    oos.writeObject(lista);
                
    oos.flush(); 
                
    oos.close();
                
           } catch (
    IOException e) {
                
    System.out.println(e.getMessage());
            }
        }
        
        public 
    void LeUtilizadores() throws FileNotFoundExceptionIOExceptionClassNotFoundException{


            
    ArrayList <Utilizadoreslista = new ArrayList <Utilizadores>();
            
    Utilizadores temp;
            try {
                
    ObjectInputStream in = new ObjectInputStream( new FileInputStream ("users.dat"));
                while ((
    temp=(Utilizadores)in.readObject()) !=null){
                    
    lista.add(temp);
                }
                
    in.close();
            }
            catch(
    FileNotFoundException ex1) {
                
    System.out.println(ex1.getMessage());
            }
            
            catch(
    EOFException ex2) {
                
    System.out.println("End Of File");
            }


            catch(
    IOException ex3) {
                
    System.out.println(ex3.getMessage());
            }
            
            catch(
    ClassNotFoundException ex4) {
                
    System.out.println(ex4.getMessage());
            }
            
    System.out.println("*** Lista de Utilizadores ***");
            for(
    Utilizadores users lista)
                
    System.out.println(users.getUser()+", "+users.getPass()+", "+users.getTipo());
        }
    }
    classe Leitura para ler os dados do teclado
    PHP:
    import java.io.*;

    public class 
    Leitura
    {
        public static 
    String LeString() 
        { 
            
    String str ""
            
    boolean ok false;
            
            
    InputStreamReader stdin = new InputStreamReader(System.in); 
            
    BufferedReader linhastr = new BufferedReader(stdin); 


            while (!
    ok){
            try{
                
    str linhastr.readLine();
                
    ok=true;
            }catch(
    IOException eio){
                
    System.out.println("Dado invalido volte a introduzir por favor:");
            }catch(
    Exception e){
                
    System.out.println("Dado invalido volte a introduzir por favor:");
            }
        }         
            return 
    str;
        }


        public static 
    int LeInt() 
        { 
            
    int i=0;
            
    String str ""
            
    boolean ok false;


            
    InputStreamReader stdin = new InputStreamReader(System.in); 
            
    BufferedReader linhastr = new BufferedReader(stdin); 
            
            while (!
    ok){
            try{
                
    str linhastr.readLine();
                
    Integer.parseInt(str);
                
    ok=true;
            }catch(
    IOException eio){
                
    System.out.println("Dado invalido volte a introduzir por favor:");
            }catch(
    Exception e){
                
    System.out.println("Dado invalido volte a introduzir por favor:");
            }
            }
            return 
    i;
        }
    }
    Classe utilizadores
    PHP:
    import java.io.*;import java.util.*;


    public class 
    Utilizadores
    {
        private 
    String userpass;
        private 
    int tipo;


        public 
    Utilizadores() 
        {
            
    user="";
            
    pass="";
            
    tipo=0;
        }


        public 
    Utilizadores(String userString passint tipo
        {
            
    this.user=user;
            
    this.pass=pass;
            
    this.tipo=tipo;
        }
        
        public 
    void setUser(String user) { this.user user; }
        public 
    void setPassword(String pass) { this.pass pass; }
        
        public 
    String getUser() { return user;}
        public 
    String getPass() { return pass;}
        
        public 
    int getTipo() { return tipo; }


        public 
    boolean equals(String userString pass) {
            if (
    user.equals(this.user) && pass.equals(this.pass))
                return 
    true;


            return 
    false;
        }
    }

    import java.io.*;
    import java.util.*;


    public class 
    Aluno extends Utilizadores implements Serializable
    {
        private 
    String nome;
        private 
    int numero;
        private 
    int BI;
        private 
    int NIF;
        private 
    String data_nasc;


        
    /**
         * Constructor for objects of class Funcionario
         */
        
    public Aluno()
        {
            
    super();
            
    nome="";
            
    numero=0;
            
    BI=0;
            
    NIF=0;
            
    data_nasc="";
        }
        
        public 
    Aluno(String nomeint numeroString data_nascint BIint NIFString userString passint tipo)
        {
            
    super(user,pass,tipo);
            
    this.nome=nome;
            
    this.numero=numero;
            
    this.BI=BI;
            
    this.NIF=NIF;
            
    this.data_nasc=data_nasc;
        }


        
    // setters
        
    public void setNome() { this.nome=nome;}
        public 
    void setNumero() { this.numero=numero;}
        public 
    void setBi(int BI) { this.BI=BI;}
        public 
    void setNif(int NIF) { this.NIF=NIF;}
        public 
    void setData_Nasc(String data_nasc) { this.data_nasc=data_nasc;}


        
    // getters
        
    public String getNome() { return nome;}
        public 
    int getNumero() { return numero;}
        public 
    int getBi() { return BI;} 
        public 
    int getNif() { return NIF;}
        public 
    String getData_Nasc() { return data_nasc;}
        
        public 
    void mostra_aluno()
        {
            
    System.out.println("*************ALUNO**************");
            
    System.out.println("NOME:"+nome);
            
    System.out.println("IDADE:"+data_nasc);
            
    System.out.println("NIF:"+NIF);
            
    System.out.println("BI:"+BI);
        }
        
    }


    import java.io.*;
    import java.util.*;


    public class 
    Funcionario extends Utilizadores
    {
        private 
    String nomedata_nasc;
        private 
    int NIFBI;
        
        
    /**
         * Constructor for objects of class Funcionario
         */
        
    public Funcionario()
        {
            
    super();
            
    nome="";
            
    data_nasc="";
            
    NIF=0;
            
    BI=0;
        }
        
        public 
    Funcionario(String nomeString data_nascint BIint NIFString userString passint tipo)
        {
            
    super(user,pass,tipo);
            
    this.nome=nome;
            
    this.data_nasc=data_nasc;
            
    this.NIF=NIF;
            
    this.BI=BI;
        }


        
    // setters
        
    public void setNome(String nome) { this.nome=nome;}
        public 
    void setData_Nasc(String data_nasc) { this.data_nasc=data_nasc;}
        public 
    void setNIF(int NIF) { this.NIF=NIF;}
        public 
    void setBI(int BI) { this.BI=BI;}
        
        
    // getters
        
    public String getNome() { return nome;}
        public 
    String getData_Nasc() { return data_nasc;}
        public 
    int getNIF() { return NIF;}
        public 
    int getBI() { return BI;}
        
        public 
    void mostra_funcionario()
        {
            
    System.out.println("*************Funcionarios**************");
            
    System.out.println("Nome:"+nome);
            
    System.out.println("Idade:"+data_nasc);
            
    System.out.println("NIF:"+NIF);
            
    System.out.println("BI:"+BI);
        }  
    }


    import java.io.*;
    import java.util.*;


    public class 
    Docente extends Utilizadores
    {
        private 
    String nome;
        private 
    String data_nasc;
        private 
    String disciplina;
        private 
    int BI;
        private 
    int NIF;


        
    /**
         * Constructor for objects of class Funcionario
         */
        
    public Docente()
        {
            
    super();
            
    nome="";
            
    data_nasc="";
            
    BI=0;
            
    NIF=0;
        }
        
        public 
    DocenteString nomeString disciplinaString data_nascint BIint NIFString userString passint tipo)
        {
            
    super(user,pass,tipo);
            
    this.nome=nome;
            
    this.BI=BI;
            
    this.NIF=NIF;
            
    this.data_nasc=data_nasc;
            
    this.disciplina=disciplina;
        }
        
    // setters
        
    public void setBi(int BI) { this.BI=BI;}
        public 
    void setNif(int NIF) { this.NIF=NIF;}
        public 
    void setNome(String nome) {this.nome=nome;}
        public 
    void setData_Nasc(String data_nasc) { this.data_nasc=data_nasc;}
        public 
    void setDisciplina(String disciplina) { this.disciplina=disciplina;}


        
    // getters
        
    public String getNome() { return nome;}
        public 
    int getBi() { return BI;} 
        public 
    int getNif() { return NIF;}
        public 
    String getData_Nasc() { return data_nasc;}
        public 
    String getdisciplina() { return disciplina;}
        
        public 
    void mostra_docente()
        {
            
    System.out.println("*************DOCENTE**************");
            
    System.out.println("NOME:"+nome);
            
    System.out.println("IDADE:"+data_nasc);
            
    System.out.println("NIF:"+NIF);
            
    System.out.println("BI:"+BI);
        }  
    }

    Agradeco toda a ajuda que me possam facultar

    Obrigado pela atenção

    cumps
     

Partilhar esta Página