IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Java Discussion :

Réaliser une sauvegarde sur disque dur


Sujet :

Langage Java

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    426
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 426
    Points : 111
    Points
    111
    Par défaut Réaliser une sauvegarde sur disque dur
    Bonjour à tous,

    Je suis en train de réaliser un jeu qui peut-être interrompu et repris plus tard. J'aurai besoin de sauvegarder sur disque dur quelques variables pour pouvoir reprendre le jeu en cours.

    Je n'ai aucune notions sur ce genre d'application.

    Pourriez-vous me donner des infos svp ?
    * comment créer un fichier?
    * quel type de fichier utiliser (txt..)?
    * comment écrire les données dans ce fichier?
    * comment aller les récuperer?
    * comment gérer l'écrasement de fichier?
    * comment gérer la localisation du fichier?
    * comment vider le fichier de toutes données?
    * ... (j'en ai plus d'autres mais n'hésitez pas si vous voyez d'autres éléments qui pouraient m'être précieux!)

    Merci a tous pour votre aide
    Agreable après midi
    Aud-

  2. #2
    Membre averti Avatar de alceste
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    318
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mars 2006
    Messages : 318
    Points : 356
    Points
    356
    Par défaut
    Je pense que tu trouveras de nombreuses réponse à tes questions dans cette section de la FAQ: http://java.developpez.com/faq/java/...ichiersReseaux

    ps: personnellement, j'utiliserais la serialisation

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    426
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 426
    Points : 111
    Points
    111
    Par défaut
    Merci pour le lien vers la FAQ

    Alors je viens de piger comment on fait pour créer un fichier.
    J'ai testé et ça marche (oui c'est banal mais c'est ma première fois lol)

    Mais maintenant comme puis-je faire pour écrire autre chose que du texte?
    Je site la FAQ:
    FileWriter writer = null;
    String texte = "texte à insérer à la fin du fichier";
    * J'aimerai sauvegarder des variables et pouvoir les relire ensuite.
    Mais comment les inscrire dans le fichier texte ?

    * et enfin est-ce qu'il est possible que mon programme java se debrouille tout seul à retrouver les variables (au prochain redemarrage du programme) qui seront ecrites dans le fichier?

    Merci à tous pour votre aide
    aud-

  4. #4
    Membre averti Avatar de alceste
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    318
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mars 2006
    Messages : 318
    Points : 356
    Points
    356
    Par défaut
    justement, regarde la partie serialization !

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    426
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 426
    Points : 111
    Points
    111
    Par défaut serialization
    alors je viens de tester le code sur la sérialisation
    1ere classe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    import java.io.*;
     
    public class Serialisation {
    	public static void main(String[] args){
    		try{
    			Personne per=new Personne();
    			Personne personne;
    			//creation du flux
    			ObjectOutputStream out=new ObjectOutputStream(new FileOutputStream("fichierObjet"));
    			try{		
    				//ecriture de l'objet
    				out.writeObject(per);
    				out.flush();
    			}
    			finally{
    				out.close();
    			}
    			//lecture de l'objet
    			ObjectInputStream in=new ObjectInputStream(new FileInputStream("fichierObjet"));
    			try{
    				personne=(Personne)in.readObject();
    				//affichage
    				System.out.println(personne);
    			}
    			finally{
    				//fermer le flux
    				in.close();
    			}
    		}
    		catch(Exception e){
    			System.out.println(e);
    		}
    	}
    }
    2eme classe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    import java.io.*;
     
    public class Personne implements Serializable{
     
    	private int age;
    	private String nom;
     
    	public Personne(){
    		this.age=22;
    		this.nom="toto";
    	}
     
    	public String toString(){
    		return "nom: "+nom+" age: "+age;
    	}
    }
    Mais il ne m'a pas créé de fichier dans le dossier courant. Pourquoi?

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    426
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 426
    Points : 111
    Points
    111
    Par défaut
    Je viens de mettre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    //lecture de l'objet
    			ObjectInputStream in=new ObjectInputStream(new FileInputStream("fichierObjet.txt"));
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    			//creation du flux
    			ObjectOutputStream out=new ObjectOutputStream(new FileOutputStream("fichierObjet.txt"));
    et j'ai bien obtenu un fichier dans mon repertoire courant mais voici ce qu'il m'a ecrit:
    ¬í sr Personneç@0×Fô¬€ I ageL nomt Ljava/lang/String;xp t toto

    c'est pas très propre!

    est-ce normal?

  7. #7
    Membre averti Avatar de alceste
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    318
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mars 2006
    Messages : 318
    Points : 356
    Points
    356
    Par défaut
    ce n'est pas fait pour être lisible par l'homme.. il faut déserializer pour obtenir l'objet comme il a été serializé, regarde le second exemple.

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    426
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 426
    Points : 111
    Points
    111
    Par défaut
    Mais dans ce code juste en dessous il y a deja la deserialization! non?
    il suffirait juste de recupérer ce qui a été deserializé (si je comprends bien) et de le faire inscrire dans un fichier texte? si c'est bien cela, comment faire?


    voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
     
    import java.io.*;
     
    public class Serialisation {
    	public static void main(String[] args){
     
    		try{
    			Personne per=new Personne();
    			Personne personne;
    			//creation du flux
    			ObjectOutputStream out=new ObjectOutputStream(new FileOutputStream("fichierObjet"));
    			try{		
    				//ecriture de l'objet
    				out.writeObject(per);
    				out.flush();
    			}
    			finally{
    				out.close();
    			}
    			//lecture de l'objet
    			ObjectInputStream in=new ObjectInputStream(new FileInputStream("fichierObjet"));
    			try{
    				personne=(Personne)in.readObject();
    				//affichage
    				System.out.println(personne);
    			}
    			finally{
    				//fermer le flux
    				in.close();
    			}
    		}
    		catch(Exception e){
    			System.out.println(e);
    		}
     
     
    	}
    }

Discussions similaires

  1. Réponses: 6
    Dernier message: 16/09/2008, 21h06
  2. Prévisualisation d'une image sélectionnée sur disque dur
    Par ero-sennin dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 02/08/2008, 23h54
  3. recuperer une image sauvegardée sur disque dur
    Par tatikambwa dans le forum C#
    Réponses: 3
    Dernier message: 28/05/2008, 11h21
  4. Sauvegarde sur disque dur externe USB2.0
    Par Emcy dans le forum Composants
    Réponses: 5
    Dernier message: 29/04/2008, 09h02
  5. [GD] Enregistrer une image générée par PHP sur disque dur
    Par Alex01 dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 03/05/2006, 11h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo