public static AABRI initBinaryTreeFromFile(String pathToFile) {

        // Fail fast
        if (pathToFile == null || pathToFile.isEmpty()) {
            throw new RuntimeException("Le chemin du fichier ne dois pas être vide !");
        }

        AABRI AABRI = new AABRI();

        // Tableau qui va contenir en position 0 les bornes de l'intervalle du treeNode, et en position 1 les noeud de l'ABRI
        String parametres[];

        // Tableau contenant les bornes
        String bornes[];

        // Tableau contenant les différents éléments de l'ARBI
        String ABRINodes[];

        // TreeNode utilisé pour stocker temporairement le noeud en cours de création
        AABRINode treeNode;

        // Ligne lue dans le fichier
        String ligne;

        File file = new File(pathToFile);
        try {
            InputStream is = new FileInputStream(file);
            InputStreamReader isr = new InputStreamReader(is);
            @SuppressWarnings("resource")
            BufferedReader br = new BufferedReader(isr);

            while ((ligne = br.readLine()) != null) {

                // A chaque ligne un nouveau noeud !
                treeNode = new AABRINode();

                parametres = ligne.split(";");
                if (parametres.length == 2 || parametres[0] != null) {

                    // Récupération des bornes contenues dans la ligne
                    bornes = parametres[0].split(":");
                    treeNode.setMin(Integer.parseInt(bornes[0]));
                    treeNode.setMax(Integer.parseInt(bornes[1]));

                    // Récupération des noeuds simples (ie des entiers) et ajouts
                    if (parametres.length == 2) {
                        ABRINodes = parametres[1].split(":");
                        for (String ABRINode : ABRINodes) {
                            treeNode.insert(Integer.parseInt(ABRINode));
                        }
                    }
                    try {
                        AABRI.insert(treeNode);
                    } catch (Exception e) {
                        System.out.println(e.getMessage());
                    }
                }
            }

            return AABRI;
        } catch (IOException | NumberFormatException | ValeurDejaPresenteException e) {
            System.out.println(e.getMessage());
            return null;
        }

    }