Ficheiros binarios

1 resposta
I

Boa estive a tentar implementar mas não sei o que poder numa parte do código para guardar a informação em ficheros binarios a partir da serialização

[code=java]
package trabalho_intercalar;

import java.io.IOException;

import java.util.Scanner;

import java.util.*;

import java.util.ArrayList;

import java.io.Serializable;

//Superclass Pessoa

public class Biblioteca {
/*

interface DVD{

void NumeroEdicao();

}
interface CD{

void NumeroEdicao();

}
interface Software{

void NumeroEdicao();

}
interface Livro{

void NumeroEdicao();

}
*/

public static class Pessoa{
//class

private String  Primeiro_nome,Apelido , Morada, Cidade, Distrito,Email;

private int Numero,Codigo_postal,Telefone,Telemovel;
<pre><code>     //heranças
    Pessoa(String Primeiro_nome,String Apelido, String Morada, String Cidade,String Distrito,String Email,int Numero,int Codigo_postal,int Telefone,int Telemovel){
        this.Primeiro_nome=Primeiro_nome;
        this.Apelido=Apelido;
        this.Morada=Morada;
        this.Cidade=Cidade;
        this.Distrito=Distrito;
        this.Email=Email;

        this.Numero = Numero;
        this.Codigo_postal = Codigo_postal;
        this.Telefone=Telefone;
        this.Telemovel=Telemovel;
    }

    //gets e sets
    public String getApelido(){return Apelido;}
    public void setApelido(String a){Apelido=a;}

    public String getPrimeiro_nome(){return Primeiro_nome;}
    public void setPrimeiro_nome(String pn){Primeiro_nome=pn;}

    public String getMorada(){return Morada;}
    public void setMorada(String m){Morada=m;}

    public String getCidade(){return Cidade;}
    public void setCidade(String c){Cidade=c;}

    public String getDistrito(){return Distrito;}
    public void setDistrito(String d){Distrito=d;}

    public String getEmail(){return Email;}
    public void setEmail(String e){Email=e;}

    public int getNumero(){return Numero;}
    public void setNumero(int n){Numero=n;}

    public int getCodigo_postal(){return Codigo_postal;}
    public void setCodigo_postal(int cp){Codigo_postal=cp;}

    public int getTelefone(){return Telefone;}
    public void setTelefone(int t){Telefone=t;}


    public int getTelemovel(){return Telemovel;}
    public void setTelemovel(int tm){Telemovel=tm;}

    public String toString()
    {
        String Mensagem =
                          "Telemovel: " + Telemovel + "\n" +
                           "Telefone: " + Telefone + "\n";

        return Mensagem;

    }
   Pessoa()
   {
    super(); // Construtor
}

}

//Classe Funcionario
public static class Funcionario extends Pessoa implements Serializable{ private String Departamento; private int n_empresa;
public String getDepartamento(){return Departamento;}
    public void setDepartamento(String d){Departamento=d;}

    public int getN_empresa(){return n_empresa;}
    public void setN_empresa(int n_emp){n_empresa=n_emp;}

    public Funcionario(){
    super();

    this.Departamento = Departamento;
    this.n_empresa = n_empresa;
    }

}
//Classe Cliente
public static class Cliente extends Pessoa{
    private int Numero_de_identificacao;

    public int getNumero_de_identificacao(){return Numero_de_identificacao;}
    public void setNumero_de_identificacao (int n_identi){Numero_de_identificacao=n_identi;}

    public Cliente(){
    super();
    this.Numero_de_identificacao = Numero_de_identificacao;
    }
}
//Classe Recursos public static class Recursos extends Pessoa { private String Nome_livro,Editora, Autor, Disponibilidade; private int Numero_do_livro,Edicao;
public int getNumero_recurso() {return Numero_do_livro;}
    public void setNumero_recurso(int num_livro) {Numero_do_livro=num_livro;}
    public String getNome() {return Nome_livro;}
    public void setNome(String no_livro) {Nome_livro=no_livro;}
    public int getEdicao() {return Edicao;}
    public void setEdicao(int e) {Edicao=e;}
    public String getEditora() {return Editora;}
    public void setEditora(String ed) {Editora=ed;}
    public String getAutor() {return Autor;}
    public void setAutor(String a) {Autor=a;}
    public String getDisponibilidade() {return Disponibilidade;}
    public void setDisponibilidade(String d) {Disponibilidade=d;}

    public Recursos( ){
    super();
    this.Numero_do_livro = Numero_do_livro;
    this.Editora = Editora;
    this.Autor = Autor;
    this.Disponibilidade = Disponibilidade;
    this.Edicao = Edicao;
    }
}
}

no código principal

package trabalho_intercalar;

import java.util.*;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.ListIterator;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import trabalho_intercalar.Biblioteca.Pessoa;
import trabalho_intercalar.Biblioteca.Funcionario;
import trabalho_intercalar.Biblioteca.Cliente;
import trabalho_intercalar.Biblioteca.Recursos;

public class Main{

static ArrayList<Funcionario> arrayf = new ArrayList<Funcionario>();
static Funcionario func;

static ArrayList<Cliente> arrayc = new ArrayList<Cliente>();
static Cliente client;

static ArrayList<Recursos> arrayr = new ArrayList<Recursos>();
static Recursos rec;

static Pessoa pes1 = new Pessoa();
static Pessoa pes2 = new Pessoa();

 

//funcionario
public static void criarNovoFunc()
{
     func = new Funcionario();
       String nomeFicheiro= "ArrayListFuncionarios.dat";
     Scanner sc = new Scanner(System.in);
     System.out.println("Introduza o primeiro Nome: ");
     String primeiro_nome = sc.nextLine();
     func.setPrimeiro_nome(primeiro_nome);
     System.out.println("Introduza o Apelido: ");
     String Apelido = sc.nextLine();
     func.setApelido(Apelido);
     System.out.println("Introduza o Departamento: ");
     String Departamento = sc.nextLine();
     func.setDepartamento(Departamento);
        System.out.println("Introduza o Numero de identificação: ");
     int n_empresa = sc.nextInt();
     func.setN_empresa(n_empresa);

     arrayf.add(func);


    
System.out.println ("Foi adicionado um Funcionario ");
System.out.println ("===========================================");

    }

  static  public void listarFuncionarios()
{
      String nomeFicheiro= "ArrayListFuncionarios.dat";
      
for(int a=0; a< arrayf.size();a++){
  System.out.println(arrayf.get(a).getPrimeiro_nome());
  System.out.println(arrayf.get(a).getApelido());
  System.out.println(arrayf.get(a).getDepartamento());
  System.out.println(arrayf.get(a).getN_empresa());
  
    //System.out.println("Total Funcionarios "+ arrayf.size());
    
     // Iterator<Funcionario> itr = arrayf.iterator();
   //while (itr.hasNext()) {
     //Funcionario element = itr.next();
      //System.out.print(element + " ");
   
 }
    }

  private void writeObject(ObjectOutputStream out) throws IOException {
        out.writeObject(func.setPrimeiro_nome(null));

    }

Não sei que variavel introduzir no

out.writeObject(func.setPrimeiro_nome(null));??

1 Resposta

I

[code=java]/*
*/

package trabalho_intercalar;

import java.util.*;

import java.util.ArrayList;

import java.util.Iterator;

import java.util.ListIterator;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.ObjectInputStream;

import java.io.ObjectOutputStream;

import trabalho_intercalar.Biblioteca.Pessoa;

import trabalho_intercalar.Biblioteca.Funcionario;

import trabalho_intercalar.Biblioteca.Cliente;

import trabalho_intercalar.Biblioteca.Recursos;

public class Main{

static ArrayList arrayf = new ArrayList();
static Funcionario func;

static ArrayList arrayc = new ArrayList();
static Cliente client;

static ArrayList arrayr = new ArrayList();
static Recursos rec;

static Pessoa pes1 = new Pessoa();
static Pessoa pes2 = new Pessoa();

public List funcionarios;
String nomeFicheiro= “C:/Users/J/Desktop/saida”;

//gravar funcionario

public void gravarFuncionario()

{

try

{

ObjectOutputStream streamSaida= new ObjectOutputStream(new FileOutputStream(nomeFicheiro));

streamSaida.writeObject(func);

streamSaida.close();

}

catch(IOException e)

{

System.out.println("Erro ao escrever no ficheiro " + nomeFicheiro+ .);

System.exit(0);

}

}
public void lerFicheiroFuncionario()

{

try

{

ObjectInputStream streamEntrada= new ObjectInputStream(new FileInputStream(nomeFicheiro));

funcionarios = (List)streamEntrada.readObject();

streamEntrada.close();

}
catch(Exception e)
{
    System.out.println("O ficheiro não existe!Sera criado despois de sair CORRECTAMENTE do programa.");

//     System.exit(0);

}

}

//funcionario

public static void criarNovoFunc()

{

func = new Funcionario();

String nomeFicheiro= ArrayListFuncionarios.dat;

Scanner sc = new Scanner(System.in);

System.out.println("Introduza o primeiro Nome: ");

String primeiro_nome = sc.nextLine();

func.setPrimeiro_nome(primeiro_nome);

System.out.println("Introduza o Apelido: ");

String Apelido = sc.nextLine();

func.setApelido(Apelido);

System.out.println("Introduza o Departamento: ");

String Departamento = sc.nextLine();

func.setDepartamento(Departamento);

System.out.println("Introduza o Numero de identificação: ");

int n_empresa = sc.nextInt();

func.setN_empresa(n_empresa);
<pre><code> arrayf.add(func);
System.out.println (“Foi adicionado um Funcionario “); System.out.println (”===========================================”);
}
static public void listarFuncionarios() { String nomeFicheiro= “ArrayListFuncionarios.dat”; for(int a=0; a< arrayf.size();a++){ System.out.println(arrayf.get(a).getPrimeiro_nome()); System.out.println(arrayf.get(a).getApelido()); System.out.println(arrayf.get(a).getDepartamento()); System.out.println(arrayf.get(a).getN_empresa());
//System.out.println("Total Funcionarios "+ arrayf.size());

 // Iterator<Funcionario> itr = arrayf.iterator();
//while (itr.hasNext()) { //Funcionario element = itr.next(); //System.out.print(element + " "); } } static public void criarNovoClient() { client = new Cliente();
Scanner sc = new Scanner(System.in);
 System.out.println("Introduza  o primeiro Nome: ");
 String primeiro_nome = sc.nextLine();
 client.setPrimeiro_nome(primeiro_nome);
 System.out.println("Introduza o Apelido: ");
 String Apelido = sc.nextLine();
 client.setApelido(Apelido);
 System.out.println("Introduza  a sua morada: ");
 String Morada = sc.nextLine();
 client.setMorada(Morada);
 System.out.println("Introduza  o seu telemovel: ");
 int Telemovel = sc.nextInt();
 client.setTelemovel(Telemovel);
 System.out.println("Introduza  o Numero de identificação: ");
 int n_ident = sc.nextInt();
 client.setNumero_de_identificacao(n_ident);

 arrayc.add(client);
System.out.println (“Foi adicionado um Cliente “); System.out.println (”===========================================”); } static public void listarClientes() { for(int a=0; a< arrayc.size();a++){ System.out.println(arrayc.get(a).getNumero_de_identificacao()); System.out.println(arrayc.get(a).getPrimeiro_nome()); System.out.println(arrayc.get(a).getApelido()); System.out.println(arrayc.get(a).getMorada()); System.out.println(arrayc.get(a).getTelemovel());
//System.out.println("Total Funcionarios "+ arrayf.size());

 // Iterator<Funcionario> itr = arrayf.iterator();
//while (itr.hasNext()) { //Funcionario element = itr.next(); //System.out.print(element + " "); } } static public void criarNovoRecurso() { rec = new Recursos(); Scanner sc = new Scanner(System.in);
System.out.println("Introduza  o Nome: ");
 String nome = sc.nextLine();
 rec.setNome(nome);
 System.out.println("Introduza a disponibilidade: ");
 String dispon = sc.nextLine();
 rec.setDisponibilidade(dispon);
 System.out.println("Introduza  o Numero do recurso: ");
 int n_rec = sc.nextInt();
 rec.setNumero_recurso(n_rec);
 arrayr.add(rec);
System.out.println (“Foi adicionado um Recurso “); System.out.println (”===========================================”); } static public void listarRecursos() { for(int a=0; a< arrayr.size();a++){ System.out.println(arrayr.get(a).getNumero_recurso()); System.out.println(arrayr.get(a).getNome()); System.out.println(arrayr.get(a).getDisponibilidade());
// Iterator<Funcionario> itr = arrayf.iterator();
//while (itr.hasNext()) { //Funcionario element = itr.next(); //System.out.print(element + " “); } System.out.println(”\nTotal de recursos "+ arrayr.size()); } /* public void existe(String nome) { int i=0; for (String profs : arrayList) { if (profs.contains(nome)==true) { i++; } } if (i==0) System.out.println(“Não Existe”); if (i>0) System.out.println(“Foram encontradas “+i+” ocorrencias do nome “+nome); System.out.println(”=================================================”); } public void apagarTudo() { arrayList.clear(); System.out.println(“Todos os registos foram apagados”); } public void apagaFuncionario(String nome) { arrayList.remove(nome); } */ static public void mostrarCaracteristicas(Pessoa obj) { System.out.print(“Esta Pessoa tem as seguintes características:\n”
  • “Primeiro Nome: " + obj.getPrimeiro_nome() + “”\n”
  • "Apelido: "+ obj.getApelido() + “\n”
  • "Morada: "+ obj.getMorada() + “\n”
  • "Cidade : " + obj.getCidade() + “\n”
  • "Distrito: " + obj.getDistrito() + “\n”
  • "Email: " + obj.getEmail() + “\n”
  • "Numero: " + obj.getNumero() + “\n”
  • "Codigo_postal: " + obj.getCodigo_postal() + “\n”
  • "Telefone: " + obj.getTelefone() + “\n”
  • "Telemovel: " + obj.getTelemovel() + “\n”); }
    public static void main(String arg[]) {
          //criar pessoas automaticamente
          pes1.setPrimeiro_nome("Ze");
          pes1.setApelido("Couves");
          pes1.setCidade("gdfgdf");
          pes1.setCodigo_postal(23243);
          pes1.setDistrito("f");
          pes1.setEmail("[email removido]");
          pes1.setMorada("asda");
          pes1.setNumero(12);
          pes1.setTelefone(34243);
          pes1.setTelemovel(343534);
          //pessoa 2
          pes2.setPrimeiro_nome("tim");
          pes2.setApelido("tam");
          pes2.setCidade("czcz");
          pes2.setCodigo_postal(2567);
          pes2.setDistrito("dis");
          pes2.setEmail("bvc");
          pes2.setMorada("asda");
          pes2.setNumero(12);
          pes2.setTelefone(34243);
          pes2.setTelemovel(12)  ;
    
// mostrarCaracteristicas(pes1); // mostrarCaracteristicas(pes2); // Menu Scanner scan = new Scanner(System.in); int menuSelect = 0; int menuSelect1 = 0; int menuSelect2 = 0; int menuSelect3 = 0; do { System.out.println(“Selecione a opção sff”); System.out.println(""); System.out.println("(1) - Funcionario : (2) - Cliente : (3) - Recursos : (0) - Sair");
menuSelect = scan.nextInt();
   
        switch (menuSelect)
        {
            case 1:
                if(menuSelect == 1) {

                     do {
                    System.out.println("Selecione a opção sff");
                    System.out.println("");
                    System.out.println("(1) - Criar Funcionarios     :     (2) - Alterar Funcionarios    :     (3) - Apresentar Funcionarios    :     (0) - Sair");
                    
                    menuSelect1 = scan.nextInt();
                    switch (menuSelect1)
                    {
                        case 1:
                            if(menuSelect1 == 1) {
                                criarNovoFunc();
                            }
                            break;
                        case 3:
                            if(menuSelect1 == 3) {
                                listarFuncionarios();

                            }
                            break;
                    }
                    } while (menuSelect1 != 0);
                     
                  }
            case 2:
                if(menuSelect ==2) {
                    do {
                    System.out.println("Selecione a opção sff");
                    System.out.println("");
                    System.out.println("(1) - Criar Clientes     :     (2) - Alterar Clientes     :     (3) - Apresentar Clientes   :     (0) - Sair");
                    
                    menuSelect2 = scan.nextInt();

                     switch (menuSelect2)
                    {
                        case 1:

                            if(menuSelect2 == 1) {
                                criarNovoClient();
                            }
                            break;
                            case 3:
                            if(menuSelect2 == 3) {
                                listarClientes();
                            }
                            break;
                     }
                    } while (menuSelect2 != 0);
                            }
         break;
            case 3:
                if (menuSelect ==3){
                     do {
                    System.out.println("Selecione a opção sff");
                    System.out.println("");
                    System.out.println("(1) - Criar Recursos      :     (2) - Alterar Recursos    :     (3) - Apresentar Recursos    :     (0) - Sair");
                    menuSelect3 = scan.nextInt();

                     switch (menuSelect3)
                    {
                        case 1:

                            if(menuSelect3 == 1) {
                                   criarNovoRecurso();
                                   
                            }
                            break;
                             case 3:
                            if(menuSelect3 == 3) {
                                listarRecursos();
                            }
                            break;
                     }
                    } while (menuSelect3 != 0);
                            }
}
} while (menuSelect != 0);
System.out.println(“bye”); } }

como eu chamo a funcão gravarFuncionario no menu e a lerFicheiroFuncionario, diz-me que não posso chamar na main valores que não sejam static:S

Criado 16 de janeiro de 2011
Ultima resposta 17 de jan. de 2011
Respostas 1
Participantes 1