Problema na persistencia de arquivos para classe com metodos e variaveis static

Boa noite, estou fazendo um Colecionador de Agendas com interface gráfica, esse colecionador guarda vários objetos do tipo agenda. Como no meu package eu tenho muitas classes que acessam as informações de Colecionador de Agenda, implementei essa classe armazendo variaveis static e todos os seu metodos também são static. A medida que são feitas modificações na classe Colecionador de Agendas eu vou mudando as suas variáveis, atribuindo outros valores. No entanto eu quero guardar essas modificações para a próxima vez que eu executar Colecionador de Agendas, estou usando a interface Serializable e guardando em um arquivo. O arquivo é criado mais ele não muda os valores da classe. Como posso fazer para manter minhas modificações?

Esses metodos são os que eu uso para ler ou escrever no arquivo. A minha classe Colecionador de Arquivos na verdade se chama BancoDeDados e posseui um construtor default.

[code]
private static void escreveArquivoObjeto(String nome, BancoDeDados agendaas) throws IOException{
System.out.println(“metodo escreve arqi”);
ObjectOutputStream out = null;
boolean openOut = false;

	try{
		out = new ObjectOutputStream(new BufferedOutputStream(new FileOutputStream(nome)));
		openOut = true;
		out.writeObject(agendaas);
		System.out.println("consegue escrever");
	}catch(IOException e){
		System.err.println(e.getMessage());
	}finally{
		if(openOut)
			out.close();
	}
}

private static BancoDeDados leArquivoObjeto(String nome) throws IOException{
System.out.println("metodo ler aqri");	
        ObjectInputStream in = null;
	BancoDeDados agendaas = null;
	boolean openIn = false;
	
	try{
		in = new ObjectInputStream(new BufferedInputStream(new FileInputStream(nome)));
		openIn = true;
		agendaas = (BancoDeDados) in.readObject();
                    System.out.println("consegue ler");
	}catch(ClassNotFoundException e){
		System.err.println(e.getMessage());
	}catch(IOException e){
		System.err.println(e.getMessage());
	}finally{
		if(openIn)
			in.close();
	}
	return agendaas;
}

Esse trecho de código eu chamo no inicio do main:

    if(new File("agendas.dat").exists()){
        try {
	agendas = leArquivoObjeto("agendas.dat");
        } catch (IOException e) {
	e.printStackTrace();
        }
    }else{
        try {
            escreveArquivoObjeto("agendas.dat", agendas);
        } catch (IOException e) {
	e.printStackTrace();
    }
}

E este aqui quando o usuario decide encerrar o programa.
try {
escreveArquivoObjeto(“agendas.dat”, agendas);
} catch (IOException e) {
}[/code]

So para enfatizar, ele cria o arquivo.
Desde ja agradeço,

[]s

Jéssika Renalle

Jéssika, bem vinda ao GUJ.

Quando for postar código fonte, utilize a tag code (http://www.guj.com.br/java/50115-voce-e-novo-no-guj-vai-criar-um-topico-e-colar-seu-codigo-fonte-leia-aqui-antes-por-favor).

Quanto a sua dúvida, campos estáticos não são serializados. Afinal, eles não representam o objeto, mas sim a classe e seu valor já é fornecido.
Para serializar sua classe apropriadamente, tire o modificador static dos campos, afinal, você quer criar objetos diferentes dessa classe não é mesmo?
Se você tiver métodos que usem esses campos, ao tirar o static dos campos vc precisará tirar dos métodos também.
Quando for manipular a classe, crie objetos da mesma, configure os valores e então serialize.

[]'s

Oi Davi, da próxima vez uso sim.

Obrigada, vou modificar meu sistema para poder usar a classe normal.

=)