Receber dados do teclado e gravar em arquivo

2 respostas
D

Galera, tenho a seguinte situação, tenho uma class Aluno que passo String nome, e int idade como paramentros.
E tenho a classe Main que cria meu arquivo recebe esses dados e salva em arquivo. Ai esta o meu codigo.

public static void main(String[] args) {
            Scanner ler = new Scanner (System.in);
           
            System.out.println("Digite seu nome:");
            String nome = ler.nextLine();
            
            //System.out.println("Digite sua idade");
            //int idade = ler.nextInt();
            
            Alunos alunos = new Alunos();
            alunos.setNome(nome);
            //alunos.setIdade(idade);
            
            try {
                //cria o arquivo aluno.txt
                File arquivo = new File("c:\alunos.txt");
                //
                FileWriter fw = new FileWriter(arquivo);
                
                BufferedWriter bw = new BufferedWriter(fw);
                BufferedReader br = new BufferedReader(new FileReader(arquivo));
                
                // se o aquivo existir vai inserir as entradas de dados
              if (arquivo.exists()){
                  fw.append(nome);
              }  
                bw.flush();
                fw.close();
                
                String str = null;
                while(br.ready()){
                    str = br.readLine();
                    System.out.printf("Conteudo: %s", str);
                }
                br.close();
            } catch (IOException ex) {
                ex.printStackTrace();
            }
            
    }
            
            
}

Agora tenho dois problemas, primeiro, eu teria que rebeber um integer como parametro de idade e adicionar ao arquivo como ai:

if (arquivo.exists()){
                  fw.append(nome);
                  fw.append(idade);
              }

Só que não aceita o idade, como eu poderia estar passando o integer (o append só aceita string ja tentei um parse mais não consegui) no para adicionar ao arquivo.
O segundo problema, é que eu teria que salvar e ler os dados dsse arquivo da seguinte forma:

/**

joao;40;

maria;40;

*/

como eu poderia estar fazendo isso?

Obrigado. :oops:

2 Respostas

A

- Se sua variavel "idade" for um int ( inteiro primitivo ) desse jeito funciona pois a JVM executaria o unboxing
- Se sua variavel "idade" for um Integer (classe Wrapper ) voce vai ter q chamar o metodo intValue() nessa sua variavel

Nao sei daonde vc tirou esse "append" aih mas vc tem q usar o write()

ficaria mais ou menos assim

[code]

if (arquivo.exists()){
fw.write(nome);
fw.write(";");
fw.write(idade.intValue());
fw.write(";");
}

leandro.anjos

Eu apenas trocaria:

fw.append(nome);

por:

fw.append(nome + ";" + idade.toString() + ";");

Na hora de ler, você iria armazenar a linha em uma String, separa-la em um array de String epelo caracter “;”, ai o elemento [0] seria o nome e o [1] seria a idade.

Acho que é só isso,

Criado 29 de agosto de 2008
Ultima resposta 29 de ago. de 2008
Respostas 2
Participantes 3