Os objetos DataOutputStream e DataInputStream permitem, respectivamente, a gravação e a leitura de arquivos binários. O objeto DataOutputStream se encarrega de converter os tipos de dados primitivos do java em uma sequência de bytes e usa o objeto FIleOutputStream para escrever essas informações binárias no arquivo. De forma análoga, o objeto DataInputStream recebe do objeto FileInputStream uma sequência de bytes e se encarrega de convertê-la em informações no formato dos tipos primitivos de dados do java.
Também são muito utilizados os métodos PrintWriter, que recebe uma sequência de bytes e grava em formato de texto. O objeto BufferedReader permite a leitura de um arquivo de texto. Apresentamos a seguir um exemplo de gravação e leitura de um arquivo.
Exemplo_ 2_4_4: gravação e leitura de arquivos binários
import java.io.*; public class exemplo_2_4_3 { public static void main (String[] args) throws IOException { //GRAVAÇÃO DO ARQUIVO //Configuração do arquivo e do objeto FileOutputStream File outFile = new File("teste.dat"); FileOutputStream outFileStream = new FileOutputStream(outFile); PrintWriter outStream = new PrintWriter(outFileStream); //Escreve os dados para a sequencia de bytes outStream.println(1000); outStream.println('A'); outStream.println(true); //Fecha a stream outStream.close(); //LEITURA DO ARQUIVO File inFile = new File("teste.dat"); //Configura o objeto BufferedReader FileReader fileReader = new FileReader(inFile); BufferedReader bufReader= new BufferedReader(fileReader); //Busca uma linha do arquivo de texto e grava na variável str String str = bufReader.readLine( ); //converte o valor lido para o format original e imprime na tela int i = Integer.parseInt(str); System.out.print(i); str = bufReader.readLine( ); char c = str.charAt(0); System.out.print(c); bufReader.close(); } }