Ir para o conteúdo
xinoj

dificuldade em gravar para ficheiro

Mensagens Recomendadas

xinoj

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.

//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();
}
}

//Classe GereEscola onde esta o metodo registo de utilizadores

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

public class GereEscola
{
List<Utilizadores> lista = new ArrayList<Utilizadores>();

// 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<Utilizadores> lista = new ArrayList<Utilizadores>();
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;
}
}

//classe Ficheiro

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

public class Ficheiro
{
// utilizadores
public void GravaUtilizadoresFicheiro(List<Utilizadores> 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());
}
} 

//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;
}
} 

//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;
}
}

//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);
}

}

// 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);
}
}

//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);
}
}

//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!!!");
}
}
}

Agradeco toda a ajuda que me possam facultar

cumps

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.