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

avec Java Discussion :

flux io et enregistrement


Sujet :

avec Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    70
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2009
    Messages : 70
    Points : 62
    Points
    62
    Par défaut flux io et enregistrement
    Bonjours a tous.

    Je fait appel a vous aujourd'hui pour essayer de m'aider a résoudre mon problème sur les flux.
    Bon voila ,j'ai créer un petit programme qui marche très bien sur éclipse , mais lorsque je l'ai exporter pour le rendre exécutable j'ai été confronté a plusieurs problèmes.

    Mon programme utilisant les flux , j'ai du tout d'abord régler le problème de la lecture de mes deux fichiers .txt , ce que j'ai réussi a faire ( google a été mon ami pour cela).
    Mais voila , le dernier problème est que comme j'utilise un flux sortant pour enregistrer des données , le console me met qu'il ne trouve pas le fichier , comme pour mes problèmes précédents que j'ai résolut .
    J'ai alors essayé d'utiliser ces même méthodes , mes sans succés .Apparemment , les flux entrants ne se gèrent pas tout a fait comme les sortants .Et j'ai lu qu'il n'était pas possible d'écrire dans un fichier se trouvant dans un .jar (J'espéres que si ! ).

    Voici le code que j'utilise sur éclipse :
    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
     
    			 ObjectOutputStream oos;
    			         try {
    			         	oos = new ObjectOutputStream(
    			         				new BufferedOutputStream(
    			         						new BufferedOutputStream(
    			         								       new FileOutputStream("fichiers/game.txt"))));
     
    			         	//Nous allons écrire chaque objet Game dans le fichier
    			         	oos.writeObject(new Game(nom1 , score1));
    			         	oos.writeObject(new Game(nom2 , score2));
    			         	oos.writeObject(new Game(nom3 , score3));
    			         	oos.writeObject(new Game(nom4 , score4));
    			         	oos.writeObject(new Game(nom5 , score5));
    			         	oos.writeObject(new Game(nom6 , score6));
    			         	oos.writeObject(new Game(nom7 , score7));
    			         	oos.writeObject(new Game(nom8 , score8));
    			         	oos.writeObject(new Game(nom9 , score9));
    			        	oos.writeObject(new Game(nom10 , score10));
     
     
    			         	//NE PAS OUBLIER DE FERMER LE FLUX ! ! !
    			         	oos.close();
     
    			         } catch (FileNotFoundException e) {
    			              e.printStackTrace();
    			          } catch (IOException e) {
    			              e.printStackTrace();
    			          }
    Je me répète , mais mes lectures de flux étaient du même style et j'ai résolut le problème.

    Alors si vous savez comment réussir a enregistrer les données dans un .jar ,ou une autre méthode a utiliser je vous en serais très reconnaissent .
    Merci d'avance

  2. #2
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Points : 7 163
    Points
    7 163
    Par défaut
    Il n'est pas possible d'écrire dans un fichier se trouvant dans un jar.
    Un jar est une archive ZIP avec quelques fichiers spéciaux en plus. Tu devras donc ouvrir le jar, modifier le fichier, puis reconstruire le jar.
    Mais attention : le jar ne doit pas être en cours d'utilisation par la JVM. Tu pourrais avoir des résultats indéterminés sur le fonctionnement du programme.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    70
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2009
    Messages : 70
    Points : 62
    Points
    62
    Par défaut
    Merci d'avoir répondu aussi vite.
    Donc si je crés un petit jeu , je ne pourrais pas enregistrer les données du jeu
    Mais il doit bien avoir un moyen d'enregistrer les données même a l'extérieur du jar et de pouvoir les lire . ( Tous les le font alors pourquoi pas en java ?)
    Cela fais un petit mois que j'apprends le code java tout seul , et comme je suis débutant (même en informatique) ,il doit y avoir des notions qui me dépassent.

    Si tu sais comment faire pour diriger le flux sortant sur un fichier a l'extérieur du jar , puis pouvoir le lire dans mon programme se serait sympa de me donner quelques tuyaux .

    Et merci encore. .

  4. #4
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Points : 7 163
    Points
    7 163
    Par défaut
    Citation Envoyé par yoann34 Voir le message
    Merci d'avoir répondu aussi vite.
    Donc si je crés un petit jeu , je ne pourrais pas enregistrer les données du jeu
    Mais il doit bien avoir un moyen d'enregistrer les données même a l'extérieur du jar et de pouvoir les lire . ( Tous les le font alors pourquoi pas en java ?)
    Oui, on peut parfaitement créer un fichier. Il faut seulement que le répertoire existe.

    Si tu sais comment faire pour diriger le flux sortant sur un fichier a l'extérieur du jar , puis pouvoir le lire dans mon programme se serait sympa de me donner quelques tuyaux.
    Il faudrait plus d'information sur les erreurs lorsque ça ne fonctionne pas.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    70
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2009
    Messages : 70
    Points : 62
    Points
    62
    Par défaut
    Voici ma premiere ligne d'erreur :
    java.io.FileNotFoundException: fichiers/game.txt (No such file or directory)

    Comme je l'ai dit , il ne trouve pas le fichier dans le jar.
    Mais si je crés un fichier dans le même dossier ou se trouve le jar ( juste a coté ),comment il me faut écrire la direction de lecture et d'écriture ?

    Pour ma lecture avec le fichier dans le jar je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    ObjectInputStream ois;
     
    		 try {
     
    	          	//On récupère maintenant les données !
    	          	ois = new ObjectInputStream(
    	      				new BufferedInputStream(
    	      			     	getClass().getClassLoader().getResourceAsStream("fichiers/game.txt")));
    pour l'écriture c'est toujours "?" .
    Je ne vois pas comment faire , car je manque cruellement d'expérience .

  6. #6
    Membre régulier Avatar de Caxton
    Homme Profil pro
    Sans
    Inscrit en
    Janvier 2005
    Messages
    586
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Corrèze (Limousin)

    Informations professionnelles :
    Activité : Sans

    Informations forums :
    Inscription : Janvier 2005
    Messages : 586
    Points : 123
    Points
    123
    Par défaut
    Bonjour,
    Ma contribution va peut être paraître inutile, voir idiote, mais qu'importe je me lance.
    Pour moi qui utilise des fichier, je procède toujours de la même façon. Sous windows XP (par ce que j'en suis resté la moi) je pointe sur le dossier C:\Documents and Settings\All Users\Documents auquel j'ajoute un \FichiersJeux\Game.txt

    Comme cela, tu aura tout ici. Une autre solution est de trouvé par le code ou se situe ton jar puis d'ajouter \FichiersJeux\Game.txt et la ou que soit ton application tu peux retrouvé les fichier que tu a avec ton jar. Préfère quand même la solution N°1, elle est bien moins risqué que la seconde et plus facile à mettre en oeuvre.

    Cordialement.

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    70
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2009
    Messages : 70
    Points : 62
    Points
    62
    Par défaut
    Merci pour ta réponse microbull.
    J'ai suivi tes conseilles et maintenant ça marche.
    Mon problème c'était , la direction des fichiers extérieurs ,mais là j'ai bien compris.

    Merci infiniment pour tous vos conseille .

  8. #8
    Membre régulier Avatar de Caxton
    Homme Profil pro
    Sans
    Inscrit en
    Janvier 2005
    Messages
    586
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Corrèze (Limousin)

    Informations professionnelles :
    Activité : Sans

    Informations forums :
    Inscription : Janvier 2005
    Messages : 586
    Points : 123
    Points
    123
    Par défaut
    Et bien je suis ravi d'avoir pu t'aider un peu avec mon retour d'expérience.
    Cordialement.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Afficher un flux RSS et enregistrer
    Par imparator_42 dans le forum Langage
    Réponses: 2
    Dernier message: 18/12/2008, 22h00
  2. [DirectShow] Visualiser un flux et l'enregistrer
    Par Rogolotoon dans le forum DirectX
    Réponses: 4
    Dernier message: 20/11/2006, 21h26
  3. Enregistrer flux Video d'une WEBCAM
    Par yakoz dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 22/03/2006, 16h23
  4. [Audio] Enregistrement et lecture de flux...
    Par remixtech dans le forum Langage
    Réponses: 2
    Dernier message: 29/10/2005, 13h07
  5. [Algo] Rupture de flux lors de l'enregistrement
    Par ced00 dans le forum Langage
    Réponses: 5
    Dernier message: 06/02/2005, 04h29

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