public static void init() {
                listeSystemes = new ArrayList<Systeme>();
		String fichier = "src/main/java/fr/miage/at/convert";
		
		int cpt;
		boolean existe;

                //read file
		try {
			InputStream ips = new FileInputStream(fichier);
			InputStreamReader ipsr = new InputStreamReader(ips);
			BufferedReader buffer  = new BufferedReader(ipsr);
			String ligne;
                        String[] ligneFichier;
                        String ligneF, ligneF3, ligneF4;
                        String comp0, comp1;
                        //read line by line
			while ((ligne = buffer.readLine()) != null) {
				cpt = 0;
				existe = false;
                                //decomposition of the line
				ligneFichier = ligne.split(" ; ");
                                //system recovery
				while (cpt < listeSystemes.size() && !existe) {
                                        Object obj = listeSystemes.get(cpt);
                                        Systeme sys = (Systeme)obj;
                                        String sysNom = sys.getNom();
                                        ligneF = ligneFichier[0];
					if (ligneF.equals(sysNom)) {
						existe = true;
					} else {
						cpt++;
					}
				}

				Conversion conv;
                                //retrieve the conversion type
                                ligneF3 = ligneFichier[3];
                                ligneF4 = ligneFichier[4];
				if (ligneF3.equals("3")) {                                      
					String[] complexe = ligneF4.split("/");
                                        comp0 = complexe[0];
                                        comp1 = complexe[1];
					conv = new Conversion(Integer.parseInt(ligneF3),
							Double.parseDouble(comp0),
							Double.parseDouble(comp1));
				} else {
					conv = new Conversion(Integer.parseInt(ligneF3),
							Double.parseDouble(ligneF4), 0);
				}

                                //retrieve the unit type
                                ligneF = ligneFichier[2];
				TypeUnite nouveauType = new TypeUnite(Integer.parseInt(ligneF));
                                ligneF = ligneFichier[1];
				Unite nouvelleUnite = new Unite(ligneF, nouveauType,
						conv);

				//add unit in the system
                                if (!existe) {
                                        List<Unite> unit;
                                        ligneF = ligneFichier[0];
					Systeme sys = new Systeme(ligneF);
                                        unit = sys.getUnit();
					unit.add(nouvelleUnite);
					listeSystemes.add(sys);
				} else {
                                        Systeme sys;
                                        String name;
					for (cpt = 0; cpt < listeSystemes.size(); cpt++) {
                                                sys = listeSystemes.get(cpt);
                                                name = sys.getNom();
                                                ligneF = ligneFichier[0];
						if (name.equals(ligneF)) {
							listeSystemes.get(cpt).getUnit().add(nouvelleUnite);
						}
					}
				}
			}

			buffer.close();
		} catch (Exception e) {
			System.out.println(e.toString());
		}
	}