Exceptions et gestion des fichiers : sauvegarder et charger un niveau
CHAPITRE 8
175
Utilisez ensuite un objet de type StreamWriter pour écrire dans le flux récupéré précédemment. Comme pour le flux de sortie standard (souvenez-vous de vos premiers programmes
en mode console), l’écriture se fait grâce aux méthodes Write () et WriteLine (). N’oubliez
pas ensuite de vider le buffer grâce à la méthode Flush () et enfin de fermer le flux par la
méthode Close ().
La classe suivante met ces actions en pratique. Lorsque le joueur appuie sur la touche O,
on vérifie si le fichier test.sav existe dans le répertoire de l’utilisateur. Si c’est le cas, on
se place à la fin du fichier, sinon il est créé. Il ne reste plus qu’à ajouter une ligne au flux,
puis à fermer le fichier proprement. Après avoir testé le code, vous lirez dans le fichier la
phrase suivante :
Ouvrir un fichier et écrire dans un fichier
public class ChapitreHuit : Microsoft.Xna.Framework.Game
{
GraphicsDeviceManager graphics;
SpriteBatch spriteBatch;
StorageDevice device;
StorageContainer container;
public ChapitreHuit()
{
graphics = new GraphicsDeviceManager(this);
Content.RootDirectory = "Content";
this.Components.Add(new GamerServicesComponent(this));
}
protected override void Initialize()
{
base.Initialize();
Guide.BeginShowStorageDeviceSelector(new AsyncCallback(GetDevice), null);
}
protected override void Update(GameTime gameTime)
{
if (Keyboard.GetState().IsKeyDown(Keys.O))
{
try
{
FileStream file = File.Open(Path.Combine(container.Path,
➥"test.sav"), FileMode.Append);
StreamWriter fileWriter = new StreamWriter(file);
fileWriter.WriteLine("XNA's Not Acronymed");
fileWriter.Flush();
fileWriter.Close();
}
XNA’s Not Acronymed
=Labat FM.book Page 175 Vendredi, 19. juin 2009 4:01 16
Précédent

- 196/366

Suivant