Pequena duvida sobre Stream

3 respostas
Kassiane_Pretti

Com o seguinte codigo realizo a gravação de diferentes tipos de dados em um arquivo texto

/*Gravando diferentes tipos de dados em um arquivo usando DataOutputStream/
    public static void main(String[] args) {
        
        try{
            FileOutputStream out = new FileOutputStream("saida.txt");
            DataOutputStream datOut = new DataOutputStream(out);
            double[] reais = {2.99, 5.89, 65.5};
            int[] inteiros = {2,0,9};
            String[] cadeiaChar = {"kassiane", "Angela", "Maria"};
            
            for(int i = 0; i<reais.length; i++)
            {
                datOut.writeDouble(reais[i]);
                datOut.writeInt(inteiros[i]);
                datOut.writeChars(cadeiaChar[i]);
            }
            datOut.close();
        }
        catch (IOException e) { System.out.println(e); }
    }

Ele faz tudo direitinho, mas quando abro o arquivo está cheio de caracteres especiais. Pq eu não consigo ver exatamente o q eu gravei no arquivo?

Desde já agradeço a atenção

Vlw \o/

3 Respostas

T

Perdão, mas não se deve usar DataOutputStream para escrever em um arquivo-texto.
Por exemplo, se você usar writeDouble, serão escritos sempre 8 bytes, que são a representação binária de um double (mantissa, expoente e sinais), não alguma coisa que você pode ler (ou seja, algarimos decimais e ponto).
Para gravar do jeito que você quer, use PrintWriter, e os métodos println ou printf (dependendo de como você quer formatar os dados).

ViniGodoy

Pq vc está criando um arquivo binário, não texto.

No lugar do DataOutputStream use um PrintWriter. E então, use os métodos de println e prinf tal como vc usaria no System.out.

Isso gerará um arquivo texto.

Kassiane_Pretti

Humm…

Valeu msm.
Eu fiquei na duvida, pois todos os exemplos feitos em sala de aula foram feitos com arquivos texto, mas a gente nunca pegou um codigo para executar e ver a saida dele durante a aula. Ai já viu né, quando pega para estudar vem as duvidas.

Vlw \o/

Criado 19 de setembro de 2008
Ultima resposta 19 de set. de 2008
Respostas 3
Participantes 3