Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

xinoj

registo e gravar para ficheiro

Mensagens Recomendadas

xinoj

Boas

eu tenho uma duvida que gostaria que alguem me ajudasse, tenho estas duas classes no qual serve para registar um utilizador do tipo docente, funcionario ou aluno, mas alguma coisa esta mal porque não consigo grava consigo correr, introduzo o user e a pass e o tipo docente mas depois indica sempre que o utilizador ja existe. o que estarei eu a fazer mal?

Obrigado pela atenção

import java.io.*;
import java.util.*;
public class GereEscola
{
// 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:
	 lista.add(new Utilizadores(user,pass,1));
	 for(Utilizadores util : lista)
		 if(util.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");
		 }
 }
}

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

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

Editado por xinoj

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HappyHippyHippo

o que achas que estás a fazer aqui ?

for(Utilizadores util : lista) {
 if(util.getUser() == null ) {
 } else {
 }
}

(tenta responder em português exactamente o que o código faz)


IRC : sim, é algo que ainda existe >> #p@p

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
xinoj

O código vai gravar um utilizador com o seu user, pass e tipo (1 - docente 2 - aluno ou 3 - funcionario).

Nessa parte penso estar a correr a lista e verificar se o novo user existe na lista e se não existir gravar.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HappyHippyHippo

não

estás simplesmente a percorrer a lista com o nome "lista" de objectos do tipo "Utilizadores" e verificas se o valor de retorno da função getUser() é nulo.

agora, o que a função getUser faz, não faço ideia ...


IRC : sim, é algo que ainda existe >> #p@p

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.