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?
Leia o programa, procure as classes no JavaDoc, e me explique o que ele faz. Qual é a saída?
importjava.io.*;classTesteDataStream{publicstaticvoidmain(String[]args)throwsException{StringnomeArquivo="teste.bin";intn=12345678;doubled=1.23456;Strings="Fernanda Montenegro";DataOutputStreamdos=newDataOutputStream(newFileOutputStream(nomeArquivo));dos.writeInt(n);dos.writeDouble(d);dos.writeUTF(s);dos.close();intm;doublee;Stringt;DataInputStreamdis=newDataInputStream(newFileInputStream(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!