Arquivo de texto

Boa Noite, pessoal estou precisando salvar informações de um objeto em um arquivo de texto, porém o mesmo tem informações guardadas em um HashMap,
ai não estou conseguindo implementar, pega as informações do hashMap para salvar as informações, pois eu tenho que passar as chaves por parametro, ai como eu não sei qual a chave que guardar as informações em tempo de execução, então não sei cmo passsar.
alguém poderia a me dá uma idéia de como fazer?


import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class Loja {

	private Map<String, Armazem> armazens = new HashMap(10);
	private Armazem armazem;

	public void addArmazem(String local, Armazem armazem) {
		this.armazem = armazem;
		armazens.put(local, armazem);
	}

	public Armazem getArmazen(String local) {
		return armazens.get(local);
	}

	public int getTotalCaixas() {
		int totalDeCaixas=0;
		for(Armazem armazen: armazens.values()){
			totalDeCaixas+= armazen.getQtasCaixas();
		}
		
		return totalDeCaixas;
	}

	public Map<String, Armazem> getArmazens() {
		return armazens;
	}

//classe que persiste a informação
public class Persistencia {

	public void salvar(Loja loja) {

		try {
			FileWriter file = new FileWriter("prova2.txt");

			file.close();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

	}
	
}














Bem, se eu entendi direito a situação, você não está conseguindo “serializar” o seu objeto pois não sabe como obter as chaves dos valores armazenados.
Você pode pesquisar no tipo Map, que possui um método que te retorna um um tipo Set contendo todas as chaves utilizadas dentro da sua estrutura. Assim você terá acesso tanto às chaves como aos valores armazenados. Agora é moleza ein escrever isso num arquivo texto… :slight_smile:

[]'s.

certo e como eu jogo o valor do set no caso a chave para um String?
Set<Entry<String, Armazem>> chaves= loja.getArmazens().entrySet();

Putz cara, aí vai depender de como você vai pensar para elaborar isso. Se você seguir o link do tipo Set que passei, vai ver que ele é uma coleção de objetos. Nesse tipo existem alguns métodos que te permitem acessar esses valores, como por exemplo, transformar todos os elementos em um array de objetos e depois você faz um cast. Ou então utilizar o tipo Iterator para você percorrer essas chaves. Ou até mesmo removendo um a um os elementos do seu Set.
Agora é com você aceitar uma das minhas sugestões ou bolar a sua própria idéia… :slight_smile:

[]'s.