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 e não grava, ja tentei de diversas formas e não sei mais o que fazer, peço desculpa mas eu não percebo mto de programação e tenho que fazer este projeto para terminar o curso, se me poderem dizer o que tenho mal e me mostrarem o que deveria mudar e meter bem agradecia, ja tentei de diversas formas e não esta a dar.
[code]//classe Escola com o main
import java.io.;import java.util.;
public class Escola
{
public static void main(String[] args) throws IOException, FileNotFoundException, ClassNotFoundException {
//criação de objecto
Ficheiro f = new Ficheiro();
Menu m = new Menu();
f.LeUtilizadores();
//entrada no menu
m.menuInicio();
}
}
[/code]
[code]//Classe GereEscola onde esta o metodo registo de utilizadores
import java.io.;
import java.util.;
public class GereEscola
{
List lista = new ArrayList();
// verifica se existe utilizador
public boolean existeLista(String user) {
for (Utilizadores utilizador : lista) {
if (utilizador.getUser().equals(user)) {
return true;
}
}
return false;
}
// registo de utilizadores
public void registo() throws IOException
{
// List lista = new ArrayList();
String user, pass;
int tipo,x;
System.out.println("************* REGISTO **************");
System.out.println("USERNAME: ");
user= Leitura.LeString();
System.out.println("PASSWORD: ");
pass= Leitura.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:
//tentei desta forma
if(user!= null && !user.isEmpty() && !existeLista(user)){
lista.add(new Utilizadores(user,pass,1));
Ficheiro f = new Ficheiro();
f.GravaUtilizadoresFicheiro(lista);
System.out.println("Docente registado");
}else{
System.out.println("O utilizador com o username "+user+" já existe");
}
break;
case 2:
//e desta forma
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("Docente registado");
}else{
System.out.println("O utilizador com o username "+user+" já existe");
}
break;
}
}[/code]
[code]//classe Ficheiro
import java.io.;import java.util.;
public class Ficheiro
{
// utilizadores
public void GravaUtilizadoresFicheiro(List lista) throws IOException{
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 FileNotFoundException, IOException, ClassNotFoundException{
ArrayList <Utilizadores> lista = 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());
}
} [/code]
[code]//classe Leitura para ler os dados do teclado
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();
i = 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;
}
} [/code]
[code]//Classe utilizadores
import java.io.;import java.util.;
public class Utilizadores
{
private String user, pass;
private int tipo;
public Utilizadores()
{
user="";
pass="";
tipo=0;
}
public Utilizadores(String user, String pass, int 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 user, String pass) {
if (user.equals(this.user) && pass.equals(this.pass))
return true;
return false;
}
}[/code]
[code]//classe aluno
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 nome, int numero, String data_nasc, int BI, int NIF, String user, String pass, int 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);
}
}[/code]
[code]// funcionario
import java.io.;
import java.util.;
public class Funcionario extends Utilizadores
{
private String nome, data_nasc;
private int NIF, BI;
/**
* Constructor for objects of class Funcionario
*/
public Funcionario()
{
super();
nome="";
data_nasc="";
NIF=0;
BI=0;
}
public Funcionario(String nome, String data_nasc, int BI, int NIF, String user, String pass, int 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);
}
}
[/code]
[code]//Docente
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 Docente( String nome, String disciplina, String data_nasc, int BI, int NIF, String user, String pass, int 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);
}
}[/code]
[code]//classe menu
import java.io.;
import java.util.;
import java.text.ParseException;
public class Menu
{
private int x;
private GereEscola gere = new GereEscola();
public void menuInicio() throws IOException
{
// GereEscola gere = new GereEscola();
System.out.println("*************SISTEMA DE GESTAO ESCOLAR************");
System.out.println("*********Escolha uma das seguintes opções*********");
System.out.println("********* 1 - LOGIN *********");
System.out.println("********* 2 - REGISTO *********");
System.out.println("********* 3 - SAIR *********");
System.out.println("* *");
System.out.println("**************************************************");
x=Leitura.LeInt();
switch (x) {
/**case 1:
gere.login(listaUsers);
break;*/
case 2:
gere.registo();
break;
case 3:
System.exit(0);
break;
default:
System.out.println("Esta opcao nao valida!!!");
}
}
}[/code]
Agradeco toda a ajuda que me possam facultar
cumps