Arquivos

2 respostas
pdform

Alguém poderia me dar um exemplo de código para leitura e gravação em arquivos binários em Java?

Olha, eu tenho um livro de Java aqui e não entendi. Procurei muito na internet e não entendi. Poderiam tentar me explicar de forma bem simples como eu abro um arquivo e escrevo/leio dados simples como int, string, double ou objetos inteiros?

Obrigado!

2 Respostas

T

Leia o programa, procure as classes no JavaDoc, e me explique o que ele faz. Qual é a saída?

import java.io.*;

class TesteDataStream {
    public static void main(String[] args) throws Exception {
        String nomeArquivo = "teste.bin";
        int n = 12345678;
        double d = 1.23456;
        String s = "Fernanda Montenegro";
        
        DataOutputStream dos = new DataOutputStream (new FileOutputStream (nomeArquivo));
        dos.writeInt (n);
        dos.writeDouble (d);
        dos.writeUTF (s);
        dos.close();
        
        int m;
        double e;
        String t;
        
        DataInputStream dis = new DataInputStream (new FileInputStream (nomeArquivo));
        // Atenção: você deve ler NA MESMA ORDEM em que os dados foram escritos.
        m = dis.readInt ();
        e = dis.readDouble ();
        t = dis.readUTF ();
        dis.close();

        System.out.println (m);
        System.out.println (e);
        System.out.println (t);
    }
}
pdform

Ok. Pelo que entendi, é aberto o arquivo “teste.bin”. Vc escreve um inteiro, um double e uma string e depois fecha o arquivo. Então você abre o arquivo novamente, lê um inteiro, um double e uma string e o fecha.

Tudo bem. Agora, como eu faria para gravar uma classe inteira? Ou tenho que gravar atributo a atributo? Outra coisa… os métodos contrutores das classes DataOutputStrema e DataInputStream, como eles abrem o arquivo? Se existir, eles sobrescrevem? Abrem apenas para acrescentar dados? Tem como escolher isso?

Sua resposta me ajudou muito. Muito mesmo. Realmente muito obrigado! :smiley:

Criado 7 de setembro de 2006
Ultima resposta 8 de set. de 2006
Respostas 2
Participantes 2