Trabalhar com Arquivo no Eclipse

Galera, acabei de começar a faculdade e postei outro tópico aqui ontem onde me indicaram
um tutorial de manipular arquivo mas nao intendi nada ; /
ja criei um programinha bem básico aqui para contatos de telefone
mas preciso criar um arquivo para gravar esses nomes e telefones
para que quando eu abra o programa novamente possa vizualizá-los
preciso de algo bem fácil de entender, afinal ainda nao sei quase nada de Java…
Conto com a ajuda de voces
quem tiver disponibilidade me adicione no msn
phmgqt@hotmail.com

Grato, Paulo Henrique Orind

olá mirolhim, td bem?

vamos por partes!

o q vc não entendeu?

[quote]ja criei um programinha bem básico aqui para contatos de telefone
mas preciso criar um arquivo para gravar esses nomes e telefones
para que quando eu abra o programa novamente possa vizualizá-los
preciso de algo bem fácil de entender, afinal ainda nao sei quase nada de Java… [/quote]

o q vc já fez??

att,

Primeiramente obrigado, por pelo menos tentar me ajudar.
eu criei o programinha ja em 3 classes(obs:sou mt iniciante!)
o programa faz o seguinte: cadastra pessoas, numero telefone e outras coisas
ai preciso criar um arquivo para quando for abrir o programa novamente ele já carregue essa informaçoes, mas nao sei por onde nem começar, preciso de um tutorial sei la bem básico e voltado ao eclipse
ensinando a criar a classe para gravar e a classe para ler
;’/ se for possivel me ajude

Grato, Paulo Henrique Orind

mirolhim, poste as classes aqui já criadas, para podermos dar uma analisada.

package PlanoEmpresa;

public class Pessoa {
private String nome;
private double valorMinuto=0.21;
private int numero;
private int minutos;
private double acrescimo;
private String troca;

public Pessoa(String nome, int numero,int minutos,double acrescimo,String troca){
	this.nome=nome;
	this.numero=numero;
	this.troca=troca;
	this.acrescimo=acrescimo;
}

public double getTotal() {
	return acrescimo+(minutos*this.valorMinuto);
}

public String getTroca() {
	return troca;
}

public void setTroca(String troca) {
	this.troca = troca;
}

public int getMinutos() {
	return minutos;
}

public void setMinutos(int minutos) {
	this.minutos = minutos;
}

public String getNome() {
	return nome;
}

public void setNome(String nome) {
	this.nome = nome;
}

public int getNumero() {
	return numero;
}

public void setNumero(int numero) {
	this.numero = numero;
}

public void alteraMinuto(double valor){
	this.valorMinuto=valor;
}

public double getValorMinuto() {
	return valorMinuto;
}

public double getAcrescimo() {
	return acrescimo;
}

public void setAcrescimo(double acrescimo) {
	this.acrescimo = acrescimo;
}

public void setValorMinuto(double valorMinuto) {
	this.valorMinuto = valorMinuto;
}

public String toString(){
	return ("Nome: "+this.nome+"/nNúmero de celular: "+this.numero+"\nMinutos utilizados: "+this.minutos
			+"\nTotal da conta: R$"+getTotal()+"\nData da última troca de aparelho: "+this.troca);
}

}

package PlanoEmpresa;

public class VetPessoa {
private Pessoa[]vet;
private int nElem;
private int senha=102030;

public int getSenha() {
	return senha;
}

public void setSenha(int senha) {
	this.senha = senha;
}

public VetPessoa(int tam){
	this.vet=new Pessoa[tam];
	this.nElem=0;
}

public int getnElem() {
	return nElem;
}

public Pessoa getPessoa(String nome){
	int aux=pesquisa(nome);
	return vet[aux];
}

public void setnElem(int nElem) {
	this.nElem = nElem;
}

public int pesquisa(String nome){
	int i;
	String nome2="";
	for (i=0;i<this.nElem;i++){
		nome2=vet[i].getNome();
		if(nome.equalsIgnoreCase(nome2)){
			return i;
		}}
	return -1;
}

public double total(String nome){
	int aux=pesquisa(nome);
	if(aux>-1){
		return vet[aux].getTotal();}
	else
		return -1;
}

public double totalGeral(){
	double total=0;
	for(int i=0;i<this.nElem;i++){
		total+=vet[i].getTotal();
	}return total;
}

public int incluirMinutos(int quant,String nome){
	int aux=pesquisa(nome);
	if(aux<0){
		return -1;
	}vet[aux].setMinutos(vet[aux].getMinutos()+quant);
	return 1;
}

public int consultaMinutos(String nome){
	int aux=pesquisa(nome);
	if(aux<0){
		return -1;
	}return vet[aux].getMinutos();
}

public int pesquisaNumero(int num){
	int i;
	int numero;;
	for (i=0;i<this.nElem;i++){
		numero=vet[i].getNumero();
		if(num==numero){
			return i;
		}}
	return -1;
}

public int insereData(String nome,String data){
	int aux=pesquisa(nome);
	if(aux<0){
		return -1;
	}else{
		vet[aux].setTroca(data);
	}return 1;
}

public String consultaData(String nome){
	int aux=pesquisa(nome);
	if(aux<0){
		return ("Pessoa não cadastrada!");
	}else{
		return vet[aux].getTroca();
	}
}

public int insere(Pessoa pessoa){
	String nome=pessoa.getNome();
	int aux2=pesquisaNumero(pessoa.getNumero());
	int aux=pesquisa(nome);
	if(this.nElem>=vet.length){
		return 0;
	}
	if(aux>=0||aux2>-1){
		return -1;
	}else{
		vet[this.nElem]=pessoa;
		this.nElem++;
		return 1;
	}
}

public int remover(String nome){
	int aux=pesquisa(nome);
	if (aux<0){
		return -1;
	}else{
		vet[aux]=vet[this.nElem-1];
		vet[this.nElem-1]=null;
		this.nElem--;
		return 1;
	}
}

public int consultaNumero(String nome){
	int aux=pesquisa(nome);
	if(aux>=0){
		return vet[aux].getNumero();
	}else{
		return -1;
	}
}

public int insereValor(String nome,double valor){
	int aux=pesquisa(nome);
	if(aux<0){
		return -1;
	}else{
		vet[aux].setAcrescimo(vet[aux].getAcrescimo()+valor);
		return 1;
	}}

public int reduzirValor(String nome,double valor){
	int aux=pesquisa(nome);
	if(aux>=0){
		vet[aux].setAcrescimo(vet[aux].getAcrescimo()-valor);
		return 1;
	}else{
		return -1;
	}
}

public String consultaNome(int numero){
	int i;
	int num2=0;
	for (i=0;i<this.nElem;i++){
		num2=vet[i].getNumero();
		if(numero==num2){
			return vet[i].getNome();
		}}
	return "Pessoa Não Cadastrada!";

}

public String toString(){
	String msg="";
	for(int i=0;i<this.nElem;i++){
		msg+="\nNome: "+vet[i].getNome()+"\nNumero: "+vet[i].getNumero()
		+"\nData da Ultima troca de aparelho: "+vet[i].getTroca()+"\n";
	}
	return msg;
}

public String toStringArquivo(){
	String msg="";
	for(int i=0;i<this.nElem;i++){
		msg+="Nome:"+" \t "+vet[i].getNome()+" \t "+"Numero:"+" \t "+vet[i].getNumero();
	}
	return msg;
}

}

package PlanoEmpresa;

public class Main {
static final int tam=50;
public static void main(String[] args) {
int senha2;
VetPessoa vet=new VetPessoa(tam);
do{senha2=InOut.leInt(“Digite a senha de acesso:”);
}while(senha2!=vet.getSenha());
Pessoa pessoa=new Pessoa("",0,0,0,"");
char confirma=‘N’;
int op;
do{
do{
op=InOut.leInt(" PLANO EMPRESA"+

					"\n\n\nINFORME A OPÇÃO DESEJADA:\n\n" +
					"1-Cadastrar Pessoa\n" +
					"2-Remover Pessoa\n" +
					"3-Consulta Numero\n" +
					"4-Consulta Nome\n" +
					"5-Incluir Minutos Utiliados\n" +
					"6-Consultar Minutos Utilizados\n" +
					"7-Inserir Valor na Conta\n" +
					"8-Reduzir Valor na Conta\n" +
					"9-Consultar Data de Troca de Aparelho\n" +
					"10-Incluir Data de Troca de Aparelho\n"+
					"11-Pessoas Cadastradas no Plano\n"+
					"12-Valor de Conta Individual\n" +
					"13-Valor da Conta total do plano\n" +
					"14-Alterar Preço por Minuto\n" +
					"15-Consultar Preço do Minuto\n" +
					"16-Alterar Senha\n" +
			"17-Sair");
		}while (op<1||op>17);
		switch(op){
		case 1: cadastrar(vet);
		break;
		case 2: remover(vet);
		break;
		case 3: consultaNumero(vet);
		break;
		case 4:consultaNome(vet);
		break;
		case 5:incluirMinutos(vet);
		break;
		case 6:consultaMinutos(vet);
		break;
		case 7:insereValor(vet,pessoa);
		break;
		case 8:reduzirValor(vet,pessoa);
		break;
		case 9:consultaData(vet);
		break;
		case 10:insereData(vet);
		break;
		case 11: relatorio(vet);
		break;
		case 12:valorIndividual(vet);
		break;
		case 13: valorGeral(vet);
		break;
		case 14:alteraMinuto(pessoa);
		break;
		case 15:valorMinuto(pessoa);
		break;
		case 16:alterarSenha(vet);
		break;
		case 17: confirma=sair();
		break;
		}
	}while(confirma!='S'&&confirma!='s');
}

public static int leTam(){
	int aux;
	do{
		aux=InOut.leInt("Informe a quantidade de pessoas do plano");
	}while(aux<0);
	return aux;
}

public static void cadastrar(VetPessoa vet){
	int aux;
	String nome=InOut.leString("Informe o nome da pessoa:").toUpperCase();
	int numero=InOut.leInt("Informe o número de celular da pessoa");
	Pessoa pessoa=new Pessoa(nome,numero,0,0,"Não Cadastrada!");
	aux=vet.insere(pessoa);
	if(aux<0){
		InOut.MsgDeErro("ERRO","Pessoa ou Números já Cadastrados!");
	}else
		if(aux==0){
			InOut.MsgDeErro("ERRO", "Cadastro Cheio!");
		}else{
			if(aux>0)
				InOut.MsgDeInformação("Plano Empresa","Cadastro Realizado!");}
}

public static void remover(VetPessoa vet){
	String nome=InOut.leString("Informe o Nome da Pessoa a Ser Removida:");
	int aux;
	aux=vet.remover(nome);
	if(aux<0){
		InOut.MsgDeErro("ERRO", "Pessoa não Cadastrada!");
	}else
		InOut.MsgDeAviso("Plano Empresa", "Pessoa Removida com Sucesso!");
}

public static void consultaNumero(VetPessoa vet){
	int aux=0;
	String nome=InOut.leString("Informe o Nome da Pessoa:");
	aux=vet.consultaNumero(nome);
	if(aux<0){
		InOut.MsgDeErro("ERRO", "Pessoa não Cadastrada!");
	}else{
		InOut.MsgDeInformação("Plano Empresa", "O número de telefone de: "+
				nome +" é "+aux);
	}
}

public static void consultaNome(VetPessoa vet){
	int num=InOut.leInt("Informe o número da pessoa:");
	InOut.MsgDeInformação("Plano Empresa",vet.consultaNome(num));
}

public static void relatorio(VetPessoa vet){
	InOut.MsgDeInformação("Plano Empresa",vet.toString());
}

public static char sair(){
	char aux;
	aux=InOut.leChar("Deseja Realmente Sair?\nS-Sim\nN-Não".toUpperCase());
	return aux;
}

public static void valorIndividual(VetPessoa vet){
	String nome=InOut.leString("Informe o nome a ser consultado");
	double aux=vet.total(nome);
	if (aux<0){
		InOut.MsgDeErro("ERRO","Pessoa não encontrada!");}
	InOut.MsgDeInformação("Plano Empresa", "O valor total da conta de "+nome+" é de R$"+aux);
}

public static void valorGeral(VetPessoa vet){
	double total=vet.totalGeral();
	InOut.MsgDeInformação("Plano Empresa", "O valor total da conta é de R$"+total);
}

public static void incluirMinutos(VetPessoa vet){
	String nome=InOut.leString("Informe o nome da pessoa:");
	int quant=InOut.leInt("Informe a quantidade de minutos utilizados");
	int aux=vet.incluirMinutos(quant, nome);
	if(aux<0){
		InOut.MsgDeErro("ERRO", "Pessoa não Cadastrada!");
	}else{
		InOut.MsgDeInformação("Plano Empresa","Minutos incluidos com sucesso!");
	}
}

public static void alteraMinuto(Pessoa pessoa){
	InOut.MsgDeInformação("Plano Empresa","O atual valor do minuto é de R$"+pessoa.getValorMinuto());
	pessoa.setValorMinuto(InOut.leDouble("Informe o novo valor para o minuto: R$"));
}

public static void insereValor(VetPessoa vet,Pessoa pessoa){
	String nome=InOut.leString("Informe o nome da Pessoa");
	pessoa=vet.getPessoa(nome);
	double total=pessoa.getTotal();
	InOut.MsgDeInformação("Plano Empresa","O atual valor da conta é de R$:"+total);
	double acrescentar=InOut.leDouble("Informe o valor a ser acrescentado: R$");
	int aux=vet.insereValor(nome,acrescentar);
	if(aux>=1){
		InOut.MsgDeInformação("Plano Empresa", "Valor incluido com sucesso!");
	}else{
		InOut.MsgDeErro("ERRO","Pessoa não cadastrada!");
	}
}

public static void reduzirValor(VetPessoa vet,Pessoa pessoa){
	String nome=InOut.leString("Informe o nome da Pessoa");
	pessoa=vet.getPessoa(nome);
	double total=pessoa.getTotal();
	InOut.MsgDeInformação("Plano Empresa","O atual valor da conta é de R$:"+total);
	double reduzir=InOut.leDouble("Informe o valor a ser reduzido: R$");
	int aux=vet.reduzirValor(nome,reduzir);
	if(aux>0){
		InOut.MsgDeInformação("Plano Empresa", "Valor reduzido com sucesso!");
	}else{
		InOut.MsgDeErro("ERRO","Pessoa não cadastrada!");
	}
}

public static void insereData(VetPessoa vet){
	String nome=InOut.leString("Informe o nome da pessoa:");
	String data=InOut.leString("Informe a data da troca do aparelho\n Dia-Mes-Ano");
	int aux=vet.insereData(nome, data);
	if(aux<0){
		InOut.MsgDeErro("ERRO","Pessoa não cadastrada!");
	}else{
		InOut.MsgDeInformação("Plano empresa", "Data inserida com sucesso!");
	}
}

public static void alterarSenha(VetPessoa vet){
	int senha=InOut.leInt("Informe a senha atual");
	if (senha==vet.getSenha()){
		int novaSenha=InOut.leInt("Informe a nova senha contendo apenas números");
		vet.setSenha(novaSenha);
		InOut.MsgDeInformação("Plano Empresa","Senha Alterada com sucesso!");
	}else{
		InOut.MsgDeErro("ERRO","Senha Incorreta!");
	}
	
}

public static void consultaData(VetPessoa vet){
	String nome=InOut.leString("Informe o nome da pessoa");
	String aux=vet.consultaData(nome);
	InOut.MsgDeInformação("Plano Empresa",aux);
}

public static void consultaMinutos(VetPessoa vet){
	String nome=InOut.leString("Informe o nome da pessoa");
	int aux=vet.consultaMinutos(nome);
	if(aux<0){
		InOut.MsgDeErro("ERRO","Pessoa não cadastrada!");
	}InOut.MsgDeInformação("Plano Empresa","A quantidade de minutos utilizados por "+nome+" é de: "+aux+ "minutos." );
}

public static void valorMinuto(Pessoa pessoa){
	InOut.MsgDeInformação("Plano Empresa", "O valor atual do minuto é de R$"+pessoa.getValorMinuto());
}

}

OBS: o InOut é uma classe para leitura de informaçao com interface

E ai Paulo, tranquilo?

Então como o pessoal já sugeriu, poste o você já fez ou os pontos em você tem dúvida. Assim fica mais fácil de ajudar.

Não sei se você viu, mas aqui no guj tem um artigo sobre manipulação de arquivos, segue:

http://www.guj.com.br/articles/13

Pelo que eu entendi, você precisa então jogar (serializar) a classe VetPessoa para um arquivo, e depois retornar ela?

Se é isso, veja esse tutorial aqui

http://www.devmedia.com.br/post-3050-Introducao-a-serializacao-de-objetos.html

se tiver algum problema, só falar.

Abraços

Ja vi esse link mas nao consegui intender ; /
porque pelo que andei lendo
precisa fazer uma clsse para ler,outra para gravar e como proceder no aplicativo
isso que preciso aprender ;/

Mas mirolhim, se você ver é simples,

[code] try

    {

        //Gera o arquivo para armazenar o objeto

        FileOutputStream arquivoGrav =

                  new FileOutputStream("/Users/glaucio/Desktop/saida.dat");

        //Classe responsavel por inserir os objetos

        ObjectOutputStream objGravar = new ObjectOutputStream(arquivoGrav);

        //Grava o objeto cliente no arquivo

        objGravar.writeObject(cliente);

        objGravar.flush();

        objGravar.close();

        arquivoGrav.flush();

        arquivoGrav.close();

        System.out.println("Objeto gravado com sucesso!");

    }

    catch( Exception e ){

            e.printStackTrace( );

    }[/code]

No arquivo você verá essa parte, que é onde você quer que o arquivo se localize

FileOutputStream arquivoGrav = new FileOutputStream("/Users/glaucio/Desktop/saida.dat");

e aqui

ObjectOutputStream objGravar = new ObjectOutputStream(arquivoGrav);

você cria um objeto ObjectOutputStream , no qual contem o objeto que você quer gravar.

e para ler é simples também

[code]try

    {

        //Carrega o arquivo

        FileInputStream arquivoLeitura = new FileInputStreamc:/saida.dat");

        //Classe responsavel por recuperar os objetos do arquivo

        ObjectInputStream objLeitura =

                                    new ObjectInputStream(arquivoLeitura);

        System.out.println(objLeitura.readObject());

        objLeitura.close();

        arquivoLeitura.close();

    }

    catch( Exception e ){

            e.printStackTrace( );

    }[/code]

onde ObjectInputStream contêm o objeto que foi serializado no arquivo… dando um objLeitura.readObject() você obtêm o objeto que você gravou.

Se você quer separar isso em classes, é só criar uma classe que contêm um método para gravar tipo :

public void gravar(ObjectQueVoceQuerGravar objeto){} passando o objeto que você quer gravar (serializar),

e na outra classe você cria um método public ObjectQueVoceQuerGravar gravar(){} retornando o objeto serializado.

Agora depende, se você quer serializar o objeto, ou se você quer gravar os dados deste objetos no arquivo. Depende o que você quer.

Vamos la, acho que nao estou sabendo me explicar tambem…
isso eu intendi
estou querendo é gerar o arquivo
ai quando abrir o programa denovo
ele ja carregar o vetor de pessoas com os dados que foram gravados no arquivo
;p

Grato, Paulo Henrique Orind

CLUNSDE
tem como me adicionar no msn?
eu te passo o pacote
voce coloca em uma formaque ele grave e dps abra o arquivo para dar continuidade
vejo como faz e vou te perguntando se voce tiver disponibilidade

abraços