Gravando uma estrutura num arquivo

3 respostas
U

Preciso gravar a seguinte estrutura em arquivo txt em Java:

int      numero;
long   codigo;
string nome;
char[] versao = new char [5];

Essa estrutura está representada no programa pela classe/objeto aluno. E quando mando gravar uso a rotina abaixo (após povoar o objeto aluno com os dados relativos):

private void openWriteFile () {
			
		JFileChooser fileChooser = new JFileChooser ();
		fileChooser.setFileSelectionMode(JFileChooser.FILES_ONLY);
		int result  = fileChooser.showSaveDialog(this);
		
		if (result == JFileChooser.CANCEL_OPTION){
			System.out.println("Clicado CANEL");
		}
		
		File fileName = fileChooser.getSelectedFile();
		
		if (fileName == null || fileName.getName().equals("")){
			System.out.println("Erro no nome do arquivo");
		}
		else {
			try {
				output = new ObjectOutputStream(new FileOutputStream(fileName));	
			                output.writeObject(aluno);						
				output.flush();
				closeWriteFile();
			} catch (Exception e) {				
				e.printStackTrace();
			}
		}
	}
Aqui está a classe aluno:
package com.escola.IO.Principal;

import java.io.Serializable;

public class EstructCine implements Serializable {
	private int      numero;
                private long   codigo;
                private string nome;
                private char[] versao = new char [5];
}
Porém o arquivo será lido por um programa em c++ porém quando gravo o arquivo os dados saem assim:
¬í w         èMarco Antonio
Existem alguns caracteres que são inseridos juntos com a struct no arquivo.

Como faço a gravação sem incluir esses dados, para que a sctruct seja lida por um programa em C++?

Att. Ulisses Nunes

3 Respostas

A

Você pode fazer a sua própria classe, que implementa Outputstream, que lê com o reflection todos os métodos get e imprime suas respostas… o que acha?

T

Você poderia modificar seu programa C de modo que ele lesse os dados a partir de um arquivo-texto normal - dá trabalho mas é fácil de entender.

U

Infelizmente não, é programa legado :cry:

Criado 28 de março de 2006
Ultima resposta 28 de mar. de 2006
Respostas 3
Participantes 3