Jump to content
xinoj

dificuldade em gravar para ficheiro

Recommended Posts

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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.