Bonjour à tous ,
Je suis étudiant en informatique de gestion et ca fait maintenant deux mois que j'étudie le langage JAVA sur netbeans .
Mais chaque semaine je bloque sur un problème et accumule un retard non négligeable ..
Par exemple dans le code suivant, je dois sérialiser mon tableau dans un fichier binaire et un fichier txt .
Voici exactement les consignes de mon exercice :

A partir de l'exercice précédent, créer un menu qui:

permet l'introduction de données et sérialise les objets créés
effectue la lecture des employés et les affiche en console
effectue la lecture des employés et les affiche dans un fichier texte
quitte le programme
Ce travail sera évalué.
A remettre sous forme de projet netbeans compressé(zip) .

Mais malheureusement mon tableau est bien sérialiser mais il est NULL ..
Même un System.out d'une des valeurs de mon tableau retourne un Null ..
Pourtant en dehors de ma méthode de sérialisation , mon tableau est bien rempli .
Voici mon code , l'erreur doit venir de ma méthode "execute" mais sans certitudes


Code:
package be.iepscfjemelle.poolabo.martin.entreprise2;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.ObjectOutputStream;
import java.io.PrintWriter;
import java.io.Serializable;
import java.util.Arrays;

/**
 * Contrôleur contenant les méthodes de gestion du programme
 *
 * @author romu
 */
public class Controller implements Serializable{

    /**
     * Liste des fonctions dans l'entreprise
     */
    private final String TAB[] = {
        "Directeur",
        "Comptable",
        "Secrétaire",
        "Ouvrier 1",
        "Ouvrier 2",
        "Ouvrier 3",
        "Ouvrier 4"
    };

    /**
     * Liste des objets Personne
     */
    public Personne liste[] = new Personne[7];
    private String nomfich;
    

    /**
     * Insertion des données via la console et création des objets
     */
    public void start() throws IOException, FileNotFoundException, ClassNotFoundException {

        // Parcours de la liste des fonctions dans l'entreprise
        for (int i = 0; i < TAB.length; i++) {
            // Lecture des données dans la console
            System.out.println("Entrez le nom de : " + TAB[i]);
            String nom = Clavier.lireString();
            System.out.println("Entrez le prénom de : " + TAB[i]);
            String prenom = Clavier.lireString();
            System.out.println("Entrez le numéro national de : " + TAB[i]);
            String id = Clavier.lireString();

            // Création d'un objet Personne
            Personne obj = null;
            switch (TAB[i]) {
                case "Directeur":
                    obj = new Directeur(TAB[i], id, prenom, nom);
                    break;
                case "Secrétaire":
                    obj = new Secretaire(TAB[i], id, prenom, nom);
                    break;
                case "Comptable":
                    obj = new Comptable(TAB[i], id, prenom, nom);
                    break;
                case "Ouvrier 1":
                    obj = new Ouvrier(TAB[i], id, prenom, nom);
                    break;
                case "Ouvrier 2":
                    obj = new Ouvrier(TAB[i], id, prenom, nom);
                    break;
                case "Ouvrier 3":
                    obj = new Ouvrier(TAB[i], id, prenom, nom);
                    break;
                case "Ouvrier 4":
                    obj = new Ouvrier(TAB[i], id, prenom, nom);
                    break;
            }

            // Ajout de l'objet Personne dans la liste
            this.liste[i] = obj;
             
            
        }

        // Appel de l'affichage des personnes de l'entreprise
        affiche();

    }

    /**
     * Affichage des personnes de l'entreprise dans la console
     */
    private void affiche() throws IOException, FileNotFoundException, ClassNotFoundException {
        System.out.println("================================================================");
        System.out.println("Liste des personnes de l'entreprise:");
        System.out.println("================================================================");
System.out.println(liste[1]);
        // Parcours de la liste
        for (Personne liste1 : liste) {
            // Affichage dans la console
            System.out.println(liste1.toString());
            System.out.println("Description de mon travail: ");
            liste1.travaille();
            // Si c'est un directeur
            if (liste1.getRole().equals("Directeur")) {
                //liste1.comporte();
                /* On caste l'objet Personne en Directeur
                pour pouvoir utiliser la méthode comporte()
                qui est spécifique à un objet de type Directeur*/
                Directeur obj = (Directeur) liste1;
                obj.comporte();
            }
            System.out.println("************************************************************************\n");
            
        }
        Controller obj = new Controller();
            obj.execute();
            obj.Controller();
        //Affichage Menu
        Menu obj1 = new Menu();
        obj1.ShowMenu();
        System.out.println(liste[1]);
    }

    //////////////////////////////////////////////////////////////////////////////////////
    //METHODES
    /////////////////////////////////////////////////////////////////////////////////////
    // Création du flux d'objet de sortie
    ObjectOutputStream sortie;
    
    //Ecriture fichier texte
    public void execute() throws FileNotFoundException, IOException, ClassNotFoundException {

        // Initialisation des variables
        this.nomfich = "Liste Personnes.txt";
        
        // Ecriture en fichier txt
        try ( // Création du flux de sortie vers un fichier texte
        // Print Writer permet l'écriture de texte dans le fichier
                PrintWriter sortie = new PrintWriter(new FileWriter(nomfich))) {
            // Ecriture en fichier txt
            sortie.print(liste);
            // Fermeture du flux
        }

        // Affichage
        System.out.println("Création terminée. ");
        System.out.println(liste[1]);

    }

    //Ecriture en fichier bianire
    public void Controller() throws IOException, FileNotFoundException, ClassNotFoundException {
        this.sortie = new ObjectOutputStream(new FileOutputStream("personnes.dat"));

        // envoi des objets  
        sortie.writeObject(liste);

        // Fermeture du flux
        sortie.close();

    }

}
Je vous remercie d'avoir lu et vous remercie encore plus si vous prenez le temps de m'aider .
Cordialement WiikzZ