/* ============================================================================== *
 * Programa___: TesteLeituraGravacao.java
 * Autor______: Alexandre Wolf
 * Data_______: 09/10/2006
 * Utilidade__: Gravar e Ler um arquivo Binário
 * ============================================================================== */

import java.io.*;
public class TesteLeituraGravacao{
   
   public static void main (String args[]){
      
      System.out.println("Gravando dados...");
      
      // Gravando os dados em um arquivo
      int VetDados[] = { 10, 30, 50, 23, 55, 23, 56 };
      
      try{
         
         RandomAccessFile Arquivo = new RandomAccessFile("Arquivo1.dat", "rw");
         for(int i=0; i<VetDados.length; i++){
            Arquivo.writeInt(VetDados[i]);
         }
         Arquivo.close();
         
      }catch(Exception e){
         System.out.println("Pau ao gravar o arquivo de inteiros");
      }    
      
      System.out.println("Dados Gravados");
      
      System.out.println("Lendo dados... (forma1)");
      
      //Lendo os dados a partir de um arquivo com numero de bytes sabidos
      
      int VetLeitura[] = new int[VetDados.length];
      
      try{
         
         RandomAccessFile Arquivo = new RandomAccessFile("Arquivo1.dat", "r");
         for(int i=0; i<VetDados.length; i++){
            VetLeitura[i]=Arquivo.readInt();
         }
         
         for(int i=0; i<VetLeitura.length; i++){
            System.out.println( VetLeitura[i]);
         }
         Arquivo.close();
         
      }catch(Exception e){
         System.out.println("Pau a ler o arquivo");
      }
      
      System.out.println("Lendo dados... (forma2)");
      //Lendo os dados a partir de um arquivo com numero de bytes nao sabidos
      
      int VetLeitura1[] = new int[ 1000 ];
      int NumDados = 0;
      
      try{
         
         RandomAccessFile Arquivo = new RandomAccessFile("Arquivo1.dat", "r");
         
         try{
            while(true){
               VetLeitura1[NumDados]=Arquivo.readInt();
               NumDados ++;
            }
         }catch(EOFException e){ 
             //Nao faz nada, so uso a excessao para saber o final do arquivo
         }
 
         Arquivo.close();
         
         
         for(int i=0; i<NumDados; i++){
            System.out.println( VetLeitura1[i]);
         }
      }catch(Exception e){
         System.out.println("Pau a ler o arquivo");
      }
   }
}
