Niveau { public void sauvegarderNiveau(File fichier) { try { FileWriter fw = new FileWriter(fichier); BufferedWriter bw = new BufferedWriter(fw); for (Corps c : corps) { switch (c.getClass().getName().toLowerCase()) { case "objets.planete": { Planete p = (Planete) c; bw.write("Planete ; " + p.reqMasse() + " ; " + p.reqPositionX() + " ; " + p.reqPositionY() + " ; " + p.reqRayon() + " ; " + p.reqTexture().toString() + " ; " + p.reqRayonAtmosphere() + " ; " + p.reqCouleurAtmosphere().toString()); break; } case "objets.vaisseau": { Vaisseau v = (Vaisseau) c; bw.write("Vaisseau ; " + v.reqMasse() + " ; " + v.reqPositionX() + " ; " + v.reqPositionY() + " ; " + v.reqVitesse().getX() + " ; " + v.reqVitesse().getY()); break; } case "objets.vaisseaujoueur": { VaisseauJoueur vj = (VaisseauJoueur) c; bw.write("VaisseauJoueur ; " + vj.reqPuissance() + " ; " + vj.reqMasse() + " ; " + vj.reqCarburantMax() + " ; " + vj.reqCarburantDepart()); break; } } bw.newLine(); } bw.write("DescriptionNiveau ; " + descriptionNiveau); bw.newLine(); if (objectif != null) { switch (objectif.getClass().getName().toLowerCase()) { case "modele.objectifrayon": { ObjectifRayon or = (ObjectifRayon) objectif; bw.write("ObjectifRayon ; " + or.reqPosRayon().getX() + " ; " + or.reqPosRayon().getY() + " ; " + or.reqRayon()); break; } } bw.newLine(); } bw.write("PointDepart ; " + pointDepart.getX() + " ; " + pointDepart.getY()); bw.newLine(); bw.write("TitreNiveau ; " + titreNiveau); bw.newLine(); bw.write("VitesseDepart ; " + vitesseDepart); bw.newLine(); bw.close(); fw.close(); } catch (Exception e) { } } Niveau();  Niveau(List<Corps> nouveauxCorps,
                String nouvelleDescriptionNiveau,
                Objectif nouvelObjectif,
                Vecteur nouveauPointDepart,
                String nouveauTitreNiveau,
                double nouvelleVitesseDepart); void ajouterCorps(Corps nouveauCorps); void supprimerCorps(Corps c); static Niveau chargerNiveau(InputStream fichier); List<Corps> reqCorps(); String reqDescriptionNiveau(); Objectif reqObjectif(); Vecteur reqPointDepart(); String reqTitreNiveau(); double reqVitesseDepart(); void sauvegarderNiveau(File fichier); void asgDescriptionNiveau(String nouvelleDescriptionNiveau); void asgObjectif(Objectif nouvelObjectif); void asgPointDepart(Vecteur nouveauPointDepart); void asgTitreNiveau(String nouveauTitreNiveau); void asgVitesseDepart(double nouvelleVitesseDepart);  }
@Test public void testSauvegarderNiveau() { File f = new File("/IOTest.txt"); niveau.sauvegarderNiveau(f); niveau.ajouterCorps(new Planete(10, 10, 10, 10, 0, Color.WHITE)); niveau.sauvegarderNiveau(null); niveau.ajouterCorps(new Planete(10, 450, 450, 10, 0, Color.WHITE)); }