Gravar em arquivo txt

9 respostas
D

Bom dia estou com problema para gravar em arquivo txt é um vetor de 10 posições.

public class BeanCliente
{
    private String[] nome= new String[10];
    private String[] endereco = new String[10];
    private String[] telefone = new String[10];
    private String[] sexo = new String[10];
    public String[] getNome() {
        return nome;
    }

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

    public String[] getEndereco() {
        return endereco;
    }

    public void setEndereco(String[] endereco) {
        this.endereco = endereco;
    }

    public String[] getTelefone() {
        return telefone;
    }

    public void setTelefone(String[] telefone) {
        this.telefone = telefone;
    }
   public String[] getSexo() {
        return sexo;
    }

    public void setSexo(String[] sexo) {
        this.sexo = sexo;
    }
}

e a classe Principal

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import javax.swing.JOptionPane;

public class GravarTXT
{

 
    public static void main(String[] args)
    {
        BeanCliente bean = new BeanCliente();


        

        File file = new File("d:/arquivo.txt");
        try
        {
            if(!file.exists())
            {
            file.createNewFile();
            FileWriter fw = new FileWriter(file);
            for (int i = 1; i <= 2; i++)
            {
                       bean.setNome((JOptionPane.showInputDialog("Digite o nome do "+i+"º cliente: "));
            bean.setEndereco(JOptionPane.showInputDialog("Digite o endereço do "+i+"º cliente: "));
            bean.setTelefone(JOptionPane.showInputDialog("Digite o telefone do "+i+"º cliente: "));
            bean.setSexo(JOptionPane.showInputDialog("Digite o sexo do "+i+"º cliente: "));

            fw.write("Nome: "+bean.getNome()+"\n");
            fw.write("Endereço: "+bean.getEndereco()+"\n");
            fw.write("Telefone: "+bean.getTelefone()+"\n");
            fw.write("Sexo: "+bean.getSexo()+"\n\n");
            fw.write("-----------------------\n\n");
            fw.flush();
            fw.close();
            }

        }
             else
            {
                JOptionPane.showMessageDialog(null, "Arquivo já Existe.");
            }

        }
        catch (IOException e)
        {
            JOptionPane.showMessageDialog(null, "Erro: ao gravar arquivo");
        }
           
        }
}

Estou com problema na hora de adicionar os clientes não sei como adicionar em vetor e pegar o getdo vetor para adicionar na arquivo

grato

9 Respostas

nel

Oi!

Não é mais correto criar um vetor de BeanCliente do que dizer que todos os seus atributos são vetores?
Para pegar o valor de dentro de um vetor, basta acessar a respectiva posição.

String nome =  vet[0];

Exemplo simples :slight_smile:
Abraços.

JoaoBluSCBR

O teu vetor retorna um array de Strings.

seu bean.getNome() retorna um array de Strings

String[] nomes = bean.getNome();

para imprimir basta usar um loop

for(int x =0; x<10; x++){
fw.write(nomes[x]);

e assim por diante. Para gravar nos atributos também vc pode usar o
numero de indice de 0 a 9.

JoaoBluSCBR

Mas também concordo com o nel.

O teu bean cliente deveria ser dedicado a armazenar os atributos de 1 cliente apenas.

E em outra classe você criaria uma lista que guardasse todos os beans cliente.

Quando precisasse gravar abriria a lista e a correria pegando cada cliente e
imprimindo.

D

Tenho que fazer isso na bean sem lista
tenho que conseguir setar no vetor nomes, endereco, telefone, sexo e setar para gravar no arquivo
não estou consiguindo fazer isso
grato

nel
derb:
Tenho que fazer isso na bean sem lista tenho que conseguir setar no vetor nomes, endereco, telefone, sexo e setar para gravar no arquivo não estou consiguindo fazer isso grato

Já lhe deram a solução, mas segue novamente.

for (int i = 1; i <= 5; i++)   {   
            bean.setNome((JOptionPane.showInputDialog("Digite o nome do "+i+"º cliente: "));   
            bean.setEndereco(JOptionPane.showInputDialog("Digite o endereço do "+i+"º cliente: "));   
            bean.setTelefone(JOptionPane.showInputDialog("Digite o telefone do "+i+"º cliente: "));   
            bean.setSexo(JOptionPane.showInputDialog("Digite o sexo do "+i+"º cliente: "));   
}

for (int i = 1; i <= 5; i++)   {   
     System.out.println("Nome: " + bean.getNome()[i]);
}

Mostrei apenas para o nome, faça para todos.
Dá para melhorar muito esse código, foi exemplo mesmo.

D

o metodo get ficou legal porem o metodo set não esta funcionando não está passando o indice do vetor da classe bean como ta no metodo get

nel

Os teus sets passam vetores, precisa cria-los e depois passa-los para o método set.

String[] nomes = new String[5]; for(int index = 0; index < 5; index++) { nomes[index] = JOptionPane.showInputDialog("Digite o nome do "+i+"º cliente: "); } bean.setNome(nomes);

adriano_si

derb:
Tenho que fazer isso na bean sem lista
tenho que conseguir setar no vetor nomes, endereco, telefone, sexo e setar para gravar no arquivo
não estou consiguindo fazer isso
grato

É uma exigência isso ???

Porque realmente o Projeto é muito sucetível à falhas…

Abs []

D

é uma exigência sim, mas acho que agora vai dar certo, se der posto dos resultados

gratos a todos

Criado 31 de agosto de 2011
Ultima resposta 31 de ago. de 2011
Respostas 9
Participantes 4