Jump to content
xinoj

registo e gravar para ficheiro

Recommended Posts

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

Edited by xinoj

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other 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

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.