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

Entrée/Sortie Java Discussion :

lecture et relecture de fichiers binaires


Sujet :

Entrée/Sortie Java

  1. #1
    En attente de confirmation mail
    Inscrit en
    Septembre 2009
    Messages
    269
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 269
    Points : 96
    Points
    96
    Par défaut lecture et relecture de fichiers binaires
    Est-il possible de créer et de relire des fichiers binaires (en java) constitués de types primitifs différents et peut-on dire aussi qu'ils ont organisés en enregistrements constitués de champs ?
    Je pose une telle question car, à partir d'objets, il faudrait que je récupère les différentes informations contenus dans les données membres (qui ne sont pas forcement deu même type) pour les stocker dans un fichier.

    Merci, en effet, je tourne en rond avec ça et j'aimerais bien en sortir !

  2. #2
    Membre averti
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2004
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2004
    Messages : 265
    Points : 342
    Points
    342
    Par défaut
    Bonjour,

    Pour lire/écrire en binaires des objets ne contenant que des types primitifs, la sérialisation par défaut devrait bien fonctionner (la faq décrit simplement comment sérialiser/désérialiser un objet).

  3. #3
    En attente de confirmation mail
    Inscrit en
    Septembre 2009
    Messages
    269
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 269
    Points : 96
    Points
    96
    Par défaut je n'aurais pas du dire des types primitifs
    En effet, la sérialisation serait une solution, mais je dois penser aussi aux objets de types String dont on ne peut pas récupérer la valeur avec la sérialisation. (j'ai dit types primitifs par inattention)

  4. #4
    Membre averti
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2004
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2004
    Messages : 265
    Points : 342
    Points
    342
    Par défaut
    Ben si, même avec des String ça fonctionne bien aussi (ça fonctionnera simplement avec les types primitifs et tout les types Serializable).

    Après ça dépend du but, si le fichier obtenu doit être "lisible" autrement qu'en désérialisant le fichier, cette solution ne conviendra pas (enfin pas aussi simplement).

  5. #5
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,

    Citation Envoyé par philippe6 Voir le message
    mais je dois penser aussi aux objets de types String dont on ne peut pas récupérer la valeur avec la sérialisation.
    Heu... Je ne comprend pas trop ce que tu veux dire par là !?!


    Tu veux faire quoi en fait ?

    a++

  6. #6
    En attente de confirmation mail
    Inscrit en
    Septembre 2009
    Messages
    269
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 269
    Points : 96
    Points
    96
    Par défaut informatique de gestion
    Voila, je vais devoir particper à une épreuve de concours, donc je ne sais pas exactement de quoi il s'agira, sauf que ce sera le traditionnel, "vous êtes informaticien et on vous demande de procéder à l'informatisation d'une .....bibliotheque, par exemple. D'après les annales de ce type de concours, il est systématique de devoir créer des fichiers (adhérents, livres_empruntés, etc), je ne sais pas ce qu'ils voudront cettte année.
    Ce serait facile avec un langage de gestion comme Cobol il y 20 ans, mais ceci doit être fait avec une philosophie objet en java donc, les données seront dans des classes et pour satisfaire à cette exigence de création de fichier, je ne sais pas comment faire (faire des fichiers en utilisant les données contenues dans les classes), la proposition de gailuris serait bien mais je crois sincèrement qu'il n'est pas possible de récupérer les valeurs des String aprés la désérialisation.

    Merci pour ta patience

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    342
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 342
    Points : 419
    Points
    419
    Par défaut
    utilise ObjectOutputStream par contre ton fichier ne sera pas lisible par une personne.

    a oui j'ai oublier de dire tu utilise ObjectInputStream pour lire et ça marche très bien avec les String

  8. #8
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par philippe6 Voir le message
    je ne sais pas comment faire (faire des fichiers en utilisant les données contenues dans les classes)
    Donc tu veux simplement sauvegarder tes objets dans un fichier...

    Comme cela a été dit, pour faire simple et rapide en standard tu peux utiliser la Serialisation. Défauts : cela génère un fichier binaire et il y a plusieurs contraintes quand à l'évolution des classes.

    En standard tu pourrais également opter pour l'utilisation de XMLEncoder/XMLDecoder, qui ont l'avantage de générer un fichier XML (mais du coup plus imposant en mémoire - quoiqu'en le compressant la différence ne doit pas être bien méchante).

    Sinon tu peux très bien définir ton propre format de sauvegarde... Il y a un grand nombre de solution pour cela.

    Citation Envoyé par philippe6 Voir le message
    mais je crois sincèrement qu'il n'est pas possible de récupérer les valeurs des String aprés la désérialisation.
    Je ne sais pas ce qui te fait croire cela... mais c'est complètement faux.
    Ce serait quand même ahurissant qu'on ne puisse pas récupérer la valeur d'une chaine de caractère


    a++

  9. #9
    En attente de confirmation mail
    Inscrit en
    Septembre 2009
    Messages
    269
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 269
    Points : 96
    Points
    96
    Par défaut
    Je suis à mon boulot (pas de jdk), peut pas programmer ici, j'essaierai ça ce soir mais je crois que, une fois de plus, ObjectOutputStream ne marche pas pour les String ni pour un humain ni pour un programme.

    merci Adigouba, mais pourquoi tu me dis défaut :fichiers binaires, ou est l'ennui ?

    merci

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    342
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 342
    Points : 419
    Points
    419
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
                ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("monfichier.RolfOne"));
                oos.writeObject("Une String");
     
                ObjectInputStream ois = new ObjectInputStream(new FileInputStream("monfichier.RolfOne"));
                System.out.println(ois.readObject());
    la sortie

    run:
    Une String
    BUILD SUCCESSFUL (total time: 0 seconds)

  11. #11
    En attente de confirmation mail
    Inscrit en
    Septembre 2009
    Messages
    269
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 269
    Points : 96
    Points
    96
    Par défaut merci rolfone, j'essaierais
    merci rolfone, Je ne pourrais le faire que ce soir mais merci.

  12. #12
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par philippe6 Voir le message
    mais je crois que, une fois de plus, ObjectOutputStream ne marche pas pour les String ni pour un humain ni pour un programme.
    Une fois de plus : c'est faux !

    Citation Envoyé par philippe6 Voir le message
    pourquoi tu me dis défaut :fichiers binaires, ou est l'ennui ?
    Ben comme tout fichier binaire cela a ses défauts (pas lisible par un humain, pas facilement lisible depuis d'autres applications, ...)


    a++

  13. #13
    En attente de confirmation mail
    Inscrit en
    Septembre 2009
    Messages
    269
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 269
    Points : 96
    Points
    96
    Par défaut a ce soir,
    Vous m'avez donné plein d'info et je vous remercie. malheureusement j'ai pas un travail où on peut programmer, je ferais mes tests plus tard et je vous dirai si je m'en sors !!!!!

    a++

  14. #14
    En attente de confirmation mail
    Inscrit en
    Septembre 2009
    Messages
    269
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 269
    Points : 96
    Points
    96
    Par défaut c'est super !
    j'ai réussi mon petit transfert des données d'une classe dans un fichier, c'est génial, merci un max !

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

Discussions similaires

  1. Lecture de QString dans fichier binaire
    Par katanaenmousse dans le forum Qt
    Réponses: 18
    Dernier message: 28/10/2008, 09h22
  2. Lecture formattée dans un fichier binaire
    Par YéTeeh dans le forum C++
    Réponses: 5
    Dernier message: 16/12/2007, 21h35
  3. Lecture ecriture dans un fichier binaire
    Par laetous dans le forum C
    Réponses: 13
    Dernier message: 26/08/2006, 08h50
  4. Lecture et parcours de fichiers binaires
    Par john_osaka dans le forum C++
    Réponses: 1
    Dernier message: 07/03/2006, 20h58
  5. Réponses: 5
    Dernier message: 03/06/2005, 14h06

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