Arquivos binario

5 respostas
C

Boa Noite, senhores
Estou salvando informação de um objeto em um arquivo binario, salvando o tipo primitivo de cada objeto, ai agora eu quero recuperar essas informações, eu precisava transformar os tipos primitivos em objetos novamente, só eu não sei como faço para diferenciar os objetos, pois tem salvo mais de um tipo de objeto no arquivo.
Alguém poderia me ajudar? Ai em baixo tem um arquivo para salvar, esse método salvar recebe um objeto loja, como parametro nele tem um map de objetos armazens e dentro de cara objeto armazen tem uma lista de objetos caixas, ai consegui fazer salvar cada tipo primitivo do objeto, só não sei como eu faço para recuperar.

public void salvar(Loja loja) {

		try {
			//interface que converte os tipos primitivos em stream de bytes
			DataOutputStream file = new DataOutputStream(new FileOutputStream(
					"prova2.dat"));

			Set<String> chaves = loja.getArmazens().keySet();
			Iterator<String> iteChave = chaves.iterator();
			while (iteChave.hasNext() == true) {
				String newLine = System.getProperty("line.separator");
				String local = iteChave.next();
			file.writeChars(newLine);
				
				file.writeChars("#" + local);
				file.writeChars(" ");
				Iterator<Caixa> itecaixa = loja.getArmazen(local).getCaixas()
						.iterator();
				while (itecaixa.hasNext() == true) {
					Caixa caixa = itecaixa.next();
				file.writeChars(" *");
					file.writeUTF(caixa.getTipoChocolate());
					file.writeChars(" *");

				}
			}

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

	}

5 Respostas

Felagund

De uma olhada em ObjectInputStream e ObjectOutputStream, podem ser boas soluções.

C

eu estou tentado usuar a classe objectinputstream, para ler, porém eu tenho uma sequência de objetos salvo por linha, ambos são sepados por ‘,’, ai preciso ler esses arquivos sequencialmente em cada linha.
Alguém tem uma ideia como eu faço?
só a parte de ler uma linha toda axo que é a maior dificuldade.
O resto já implemte

C

eu não quero implementar o seriazable, então não posso usar ObjectOutputStream.

KWill

Implementa Externalizable então, que dá mais controle sobre a serialização/deserialização dos objetos e conseqüentemente pode te dar mais problemas.

Inté.

C

certo, eu estou utilizando o randomAccesFile, writeUTF,writeInt esses métodos gravam em formato binario?

Criado 5 de junho de 2009
Ultima resposta 15 de jun. de 2009
Respostas 5
Participantes 3