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 :

enregistrement dans fichier


Sujet :

Entrée/Sortie Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Septembre 2008
    Messages
    145
    Détails du profil
    Informations personnelles :
    Âge : 68

    Informations forums :
    Inscription : Septembre 2008
    Messages : 145
    Par défaut enregistrement dans fichier
    bonjour,

    je souhaite enregistrer dans un fichier des informations avec le format suivant:

    type1: x,y,z,e
    type2: e,t,r,t,t,u
    type3: e
    type4: e,t,t, etc
    etc

    le nombre de type est variable
    et le nombre de données dans chaque type est variable

    quels sont les principales méthodes possibles ? j'ai vu serialisable pour mon objet mais comme le nombre de paramètres change, je ne suis pas certain, est-il possible de sérialiser un tableau qui varie ? mais alors à la lecture comment le relire ?

    greg

  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 : 44
    Localisation : France

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Par défaut
    Ecrit toi-même dans le fichier, c'est peut-être le plus simple dans ton cas.
    Regarde le package java.io, notamment la classe BufferedOutputStream et FileOutputStream.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  3. #3
    Membre Expert
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 252
    Par défaut
    La sérialisation est utilisable dans ce cas-ci et de manière très simple :

    Tous les objets à sauvegarder doivent implementer l'interface java.io.Serializable

    Une fois cela fait, ce bout de code enregistre ces données:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("monFichier.txt"));
    oos.writeObject(monPremierObjet);
    oos.writeObject(monSecondObjet);
    oos.writeObject(...);
    et celui-ci les lit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ObjectInputStream ois = new ObjectInputStream(new FileInputStream("monFichier.txt");
    monPremierObjet = ois.readObject();
    monSecondObjet = ois.readObject();
    ...
    Attention, l'écriture et la lecture des objets doit se faire dans le même ordre. De plus, si tu modifies ta classe, les objets ne seront plus lisibles.

    Donc, si tu veux que ce soit portable pour n'importe quelle application, je te conseille de te diriger vers la sauvegarde d'un objet en XML (ou tu ajoutes des champs comme tu le souhaites).

  4. #4
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    la sérialisation n'est pas utilisable dans ton cas, car tu veux un format précis. Hors la sérialisation stocke déjà dans le fichier une série de données binaires relatives aux identifiant d'instances d'objet. La sérialsiation c'est bien pour stocker un arbre d'objets, pas pour écrire dans un format précis. Car bien que tu peux t'arranger pour que ta sérialisation/désréialisation reste stable dans le temps et dans les différentes versions de ta classe, tu n'as pas le total controle sur le format de fichier et particulieremetn sur les entete ajoutées de lui même par la classe objetoutputstream.

    Dans ton cas, attaque avec un Reader et un Writer pour respectivement la lecture et l'écriture de tes données.

  5. #5
    Membre Expert
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 252
    Par défaut
    Oups, j'avais pas compris qu'il fallait respecter le format en question. Comme le dit tchize_, dans ce cas, la sérialisation n'est pas possible.

  6. #6
    Membre confirmé
    Inscrit en
    Septembre 2008
    Messages
    145
    Détails du profil
    Informations personnelles :
    Âge : 68

    Informations forums :
    Inscription : Septembre 2008
    Messages : 145
    Par défaut re
    merci,

    le format n'est pas précis au contraire, je souhaite enregistrer des tableaux de longueurs variables en fait la structure de données serait:

    int + int + char + int[x][y] avec x et y variables selon le cas


    c'est possible avec ça ?

  7. #7
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    tout est possible ^^

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

Discussions similaires

  1. enregistrement dans fichier ".sp"
    Par christophe_halgand dans le forum MATLAB
    Réponses: 3
    Dernier message: 05/11/2008, 14h27
  2. ajout espace vide(253) en fin d'enregistrement dans fichier
    Par carmella dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 01/06/2008, 19h34
  3. comment enregistrer dans fichier
    Par aymen14 dans le forum Langage
    Réponses: 2
    Dernier message: 10/05/2008, 22h35
  4. [z/OS] Ecriture d'enregistrement dans fichier
    Par faluma dans le forum Cobol
    Réponses: 6
    Dernier message: 02/01/2008, 16h14
  5. Réponses: 1
    Dernier message: 01/06/2006, 09h11

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