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

Persistance des données Java Discussion :

Echanges de données entre ArrayList et fichiers texte


Sujet :

Persistance des données Java

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure et Loir (Centre)

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

    Informations forums :
    Inscription : Janvier 2012
    Messages : 39
    Points : 24
    Points
    24
    Par défaut Echanges de données entre ArrayList et fichiers texte
    bonjour à tous

    toujours sur mon 1er projet avec des clients, des produits et une liste d'achat... afin d'éviter de devoir rentrer des infos de client et de produit pour tester les achats et rendre le programme réellement fonctionnel, je souhaite rendre mes données client et produit persistantes.

    Je souhaite faire ça avec des fichiers texte, pcq pour l'instant c'est tout ce que j'ai appris à faire*, et encore on a passé 1h dessus en cours, pas de quoi maitriser l'engin, bcp de chose m'échappent encore et j'ai pas trouvé mon bonheur sur google pour ce cas de figure que je sais de nature atypique (parce que les pro bossent avec des SGBD, mais ça, on a pas encore abordé en cours)...

    je souhaite dans un 1er temps stocker mes clients, dont voici le constructeur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    public Client(int numClient, String prenom, String nom, String adresse, int codePostal, String ville) {
    		super();
    		this.numClient = numClient;
    		this.prenom = prenom;
    		this.nom = nom;
    		this.adresse = adresse;
    		this.codePostal = codePostal;
    		this.ville = ville;
    	}
    j'ai aussi créé une arraylist qui sert pour l'affichage sous forme de JTable
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    public class GroupeClient {
    	ArrayList<Client> tabClient = new ArrayList<Client>();
     
    	public void ajoute(Client i){
    		tabClient.add(i);
    	}
    ....
    }
    Au démarrage de mon programme, je souhaite bien entendu lire ce fichier texte pour le charger dans une arraylist

    pour commencer, sous quelle forme dois-je enregistrer mes données client dans le fichier texte ? sous forme de lignes avec des séparateurs que j'ajoute ?

    Ensuite comment je lis ces infos pour les charger dans mon arraylist ? lignes par lignes complètes ? de manière séquentielle entre chaque séparateur ?

    un exemple de code pour les 2 cas de figure me rendrait bien service...
    merci d'avance


    * : on a aussi vu avec un autre prof les bases de données DB4Object, mais ça a rendu toutes nos machines en salle de TP très instables et il parait que c'est assez peu utilisé dans le monde du travail, donc même si ça semble simple à utiliser je préfère éviter de polluer Eclipse avec ça, j'attendrais les cours sur hibernate qui arrivent dans qlq semaines

  2. #2
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 074
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 074
    Points : 7 978
    Points
    7 978
    Par défaut
    Si tu veux/dois vraiment jouer avec les fichier texte et écrire toi même la sauvegarde/chargement, alors tu px utiliser un format comme le CSV.

    1 ligne est une entrée de ton arraylist.
    Chaque variable d'une ligne est séparée par un séparateur ( ; par exemple )

    Il existe peut être des librairies pour te faciliter le travail, mais c'est 40 lignes de code a tout casser pour lire/écrire ton fichier.

    Mais sinon il existe mieux niveau persistance
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure et Loir (Centre)

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

    Informations forums :
    Inscription : Janvier 2012
    Messages : 39
    Points : 24
    Points
    24
    Par défaut
    merci pour ta réponse
    effectivement je suis bien conscient qu'il existe mieux pour la persistance, mais on a pas encore abordé ces solutions en cours. d'un autre coté je ne connais pas non plus le format CSV, l'horloge tourne et la date de remise de mon projet approche à grand pas.
    je suis donc contraint de laisser tomber l'option persistance des données afin d'espérer pouvoir terminer le projet en temps et en heure.

    que l'assistance se rassure, tel Terminator "je reviendrais" pour vous embeter avec mes questions de débutant :p

  4. #4
    Membre actif Avatar de kalina
    Femme Profil pro
    Développeur Java
    Inscrit en
    Avril 2009
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2009
    Messages : 220
    Points : 293
    Points
    293
    Par défaut
    bonjour,
    je peux te proposer quelque chose de très simple et rapide à faire:
    1)comme tu dis tu peux enregistrer tes données client dans le fichier texte, sous forme de lignes avec des séparateurs(des ; par ex)
    2)pour charger les données tu lis les données ligne par ligne comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
            String str;
            StringTokenizer st;
            BufferedReader buf1=new BufferedReader(new FileReader(nomFichier));     
    while((str=buf1.readLine())!=null){
    st=new StringTokenizer(str,";");           
    while (st.hasMoreTokens()){
                tabClient.add(st.nextToken());
    }
    }
    tu peux même utiliser une arraylist pour chaque type de token(pour chaque colonne on va dire) si ça t'arrange!
    bon courage

Discussions similaires

  1. Réponses: 16
    Dernier message: 29/06/2005, 20h55
  2. Réponses: 6
    Dernier message: 02/06/2005, 12h44
  3. Telechargement d'internet et echange de données entre 2 pc
    Par Invité dans le forum Développement
    Réponses: 5
    Dernier message: 09/05/2004, 21h22
  4. Stockage de données & lecture d'un fichier texte
    Par petitours dans le forum C++Builder
    Réponses: 6
    Dernier message: 13/03/2004, 14h05
  5. [Kylix] Echange de données entre fiches
    Par _dack_ dans le forum EDI
    Réponses: 1
    Dernier message: 01/07/2003, 11h34

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