package com.ahuntsic.es;

/**
 * EcritureEmployes.java
 * permet d'écrire un employé. vérifie l'existence des répertoires, des
 * sous-répertoires et du fichier avant d'écrire
 * Date: 07/10/2005
 * Pour: Mr. Mohammed Salah Bendelloul
 * Projet: Travail pratique #2
 *
 * @author Hassen Ben Tanfous
 */

import java.io.*;

public class EcritureEmployes {

    private File fichier;
    private ObjectOutputStream ecrire;

    /**
     * configure l'EcritureEmployes
     * @param fichier File
     */
    public EcritureEmployes(File fichier) {
        if (!(fichier.exists() && fichier.getParentFile().exists())) {
            this.fichier = fichier;
            //création des dossiers et sous-dossiers
            this.fichier.getParentFile().mkdirs();
            //création du fichier
            try {
                this.fichier.createNewFile();
                ecrire = new ObjectOutputStream(new FileOutputStream(this.
                        fichier));
            } catch (IOException ex) {
            }
        } else {
            System.err.println("fichier " + this.fichier.getName() +
                               " existe déjà");
        }
    }

    /**
     * configure l'Ecriture
     * @param nomFichier String
     */
    public EcritureEmployes(String nomFichier) {
        this(new File(nomFichier));
    }

    /**
     * écrit le contenu du fichier et ferme le flux
     * @param o Object
     */
    public void ecrireEmploye(Object o) {
        try {
            ecrire.writeObject(o);
        } catch (IOException ex) {
            System.err.println("Erreur durant l'écriture du fichier " +
                               fichier.getName());
        }
    }

    public void fermerFlux() {
        try {
            ecrire.close();
        } catch (IOException ex) {
            System.err.println ("Erreur lors de la fermeture du fichier");
        }
    }
}
