Depois da ajuda que me deram ao resolver um problema com o ArrayList, apenas me falta resolver uma situação para o programa que estou a criar ficar concluido.
Relembrando o codigo que tenho:
--------- Class Colaboradores -------------public class colaborador extends pessoa implements java.io.Serializable {
int numcolaborador;
colaborador(){}
public colaborador(String nome,String morada,String cidade,int codigop,String tele,String dep, String cargo, Date hi,Date ho,int n){
Nome = nome;
Morada = morada;
CodigoPostal = codigop;
Cidade = cidade;
Telefone = tele;
++numcolaborador;
}
@Override
public String toString(){
return ("\nNumero Colaborador: "+numcolaborador+"\nNome: "+Nome+"\nMorada: "+Morada+"\nCidade: "+Cidade+"\nDepartamento: "+Departamento+"\nCargo: "+Cargo+ "\n");
}
}
-------- Programa Principal --------------
Onde chamo as diferentes classes e metodos criados (tanto no programa principal como nas classes)
public final class ProgramaPrincipal {
public colaborador colab = new colaborador();
public ArrayList<colaborador> colaborador = new ArrayList<colaborador>();
// - - - - - - - Inserir Colaborador - - - - - -
public void inserircol(){
int i;
colaborador colab = new colaborador();
colab.numcolaborador = colaborador.size() + 1;
colab.setNome(pessoa.inputNome("Insira o nome"));
colab.setMorada(pessoa.inputMorada("Insira a Morada"));
colab.setCodigoPostal(pessoa.inputCodigop("Insira o codigo postal"));
colab.setCidade(pessoa.inputCidade("Insira a cidade"));
colab.setTelefone(pessoa.inputTelefone("Insira o número de telefone"));
colaborador.add(colab);
(..........)
}
O que pretendo é :
1.- Apos a função INSERIR, quero gravar para ficheiro. Para isso queria criar uma nova função no PROGRAMA PRINCIPAL que depois seria chamada quando são inseridos / removidos e alterados os colaboradores.
2.- Ao iniciar o programa, ler a informação dos ficheiros.
Vou ser sincero, apesar de já ter pesquisado bastanto sobre ?Serializable? continuo sem perceber como implementar no meu codigo.
O que tenho criado ate ao momento é o seguinte:
// - - - - - - - Gravar para Ficheiro - - - - - -
public void Serialcol() {
try {
//Serializando o objeto no arquivo "objSerializado.obj"
FileOutputStream out = new FileOutputStream("Colaboradores.obj");
ObjectOutputStream oo = new ObjectOutputStream(out);
oo.writeObject(colab); //Escrevendo objeto no arquivo!
JOptionPane.showMessageDialog (null, "Registo Gravado");
} catch (Exception e) {
e.printStackTrace();
}
}
Estou a utilizar bem o Serializable ?? não me parece !
E para ler de ficheiro?
Isto não funciona. Mas ando la perto ou nem por isso??
// - - - - - - - Ler de Ficheiro - - - - - -
public void lercol(){
try {
FileInputStream in = new FileInputStream("Colaboradores.obj");
ObjectInputStream oi = new ObjectInputStream(in);
colaborador colab = (colaborador) oi.readObject();
}catch (Exception e) {
e.printStackTrace();
}
}
Se me conseguirem ajudar, agradeço!
Obrigado!