/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package clase2ArchivosConObjetos;

import java.io.*;//maneja entrada y salida



/**
 *
 * @author a3
 */
public class Concesionaria
{
    private Automovil vec[];

   /* desarrollar un constructor que recibe automoviles
    * y que aloja en el vector todos aquellos automoviles
    * cuyo precio supera los 30 mil pesos
    */

    public Concesionaria (Automovil autos[])
    {
        int tam = cantidadAutos(autos);
        if( tam>0)
        {
            int indice =0;
            vec = new Automovil[tam];
            for(int i=0; i<autos.length; i++)
            {
                if(autos[i]!=null && autos[i].getPrecio()>30000)
                {
                    vec[indice]= new Automovil(autos[i].getPatente(),autos[i].getMarca(),autos[i].getPrecio());
                    indice++;
                }
            }
     }
    }
    private int cantidadAutos(Automovil autos[])
    {
       int con =0;
       for(int i=0; i<autos.length; i++)
       {
           if(autos[i]!=null && autos[i].getPrecio()>30000)
           {
               con++;
           }
       }
       return con;
    }

    public void grabarArchivo()
    {
        File archivo = new File("autos.dat");
        ObjectOutputStream oos = null;
        FileOutputStream fos = null;
        try{
            fos= new FileOutputStream(archivo);//creo canal comunicacion
            oos = new ObjectOutputStream(fos);//creo obj q sirve de filtro
            for(int i=0; i< vec.length; i++)
            {
                oos.writeObject(vec[i]); // grabar archivo
            }
        }
        catch(Exception e)
        {
            System.out.println("Mensaje error: "+e.toString());
        }
        finally{//haya excepcion o no se ejecuta
            try{
                if(oos!=null){//si se creo lo cierro
                    oos.close();
                }
                if(fos!=null){//si se creo lo cierro
                    fos.close();
                }

            } catch(Exception e){}
         }
    }

    public void leerArchivo()
    {
       File archivo = new File("autos.dat");
       if(archivo.exists()==true)
       {
            ObjectInputStream ois=null;
            FileInputStream fis =null;
            try
            {
                fis= new FileInputStream(archivo);
                ois = new ObjectInputStream(fis);
                Automovil  auto = null;//recibe cada objeto que viene del archivo
                while(true) 
                {
                    auto = (Automovil)ois.readObject();
                    System.out.println(auto.toString());
                }
            }
            catch(EOFException e1)
            {
                System.out.println("Fin de archivo");
            }
            catch(Exception e2)
            {
                 System.out.println("Exception: "+e2.toString());
            }
        finally
        {
            try{
                if(ois!=null)
                {
                    ois.close();
                }
                if(fis!=null)
                {
                    fis.close();
                }

            } catch(Exception e){}
         }
       }
       else
       {
           System.out.println("Archivo inexistente");
       }
    }

}
