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 :

Ecriture dans une ligne spécifique d'un fichier texte


Sujet :

Entrée/Sortie Java

  1. #1
    Expert confirmé
    Avatar de X-plode
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2005
    Messages
    682
    Détails du profil
    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2005
    Messages : 682
    Points : 4 883
    Points
    4 883
    Par défaut Ecriture dans une ligne spécifique d'un fichier texte
    Bonjour,

    Voilà j'ai un petit souci.
    J'aimerais pouvoir reecrire une ligne dans un fichier texte.
    Mais cette ligne sera aleatoire.
    Comment faire pour ecrire des données dans un fichier dans une ligne specifie ?
    Actuellement je rajoute mes données qu'a la fin du fichier et je ne trouve pas la methode pour reecrire une ligne d'un fichier.

    Merci d'avance

  2. #2
    Expert confirmé
    Avatar de X-plode
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2005
    Messages
    682
    Détails du profil
    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2005
    Messages : 682
    Points : 4 883
    Points
    4 883
    Par défaut
    Etant donne que je n'ai aucune reponse, se que je vais essayer de faire pour ceux que sa interesse, c'est de
    -lire le nombre de ligne
    -dimensionner mon tableau de string
    -mettre toutes les donnees ligne par ligne dans le tableau
    -modifier la ligne par rapport a l'indice du tableau
    -reecrire tout le tableau dans le fichier

    Seul solution pour l'instant que je puisse faire.

    A l'heure actuel, j'ai pris connaissance de la methode seek qui permet de situer dans n'importe quel endroit dans le fichier. Malheureusement je n'ai pas reussi a trouver l'astuce me permettant de changer aleatoirement et directement se que je souhaite.

  3. #3
    Membre chevronné
    Profil pro
    Fabrication GED
    Inscrit en
    Octobre 2005
    Messages
    1 405
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Fabrication GED

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 405
    Points : 1 958
    Points
    1 958

  4. #4
    Rédacteur
    Avatar de CyberChouan
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    2 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 752
    Points : 4 314
    Points
    4 314
    Par défaut
    Ce qu'il te faut, c'est regarder du côté de la classe java RandomAccessFile pour ton besoin. Le manuel d'utilisation c'est du côté de l'API java!
    Avant de poster, pensez à regarder la FAQ, les tutoriaux, la Javadoc (de la JRE que vous utilisez) et à faire une recherche
    Je ne réponds pas aux questions techniques par MP: les forums sont faits pour ça
    Mes articles et tutoriaux & Mon blog informatique

  5. #5
    Expert confirmé
    Avatar de X-plode
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2005
    Messages
    682
    Détails du profil
    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2005
    Messages : 682
    Points : 4 883
    Points
    4 883
    Par défaut
    Bonjour à tous,

    voilà j'ai trouvé comment faire via ma solution.
    Avec la classe randomAccess je n'ai pas tres nettement saisie mais je m'y pencherais pour voir les avantages que cela pourrais m'apporter.

    Alors en fait se que j'ai fais c'est lire le nombre de ligne et a chaque lecture j'ajoute 1 à une valeur de type int.
    Ensuite je dimensionne avec cette valeur mon tableau.
    Enfin je refais une lecture et j'attribue les valeurs au tableau ligne par ligne.
    Ensuite automatiquement la fonction setValueAt de ma JTable me donne l'information de la ligne et de la colonne. Soit via la ligne modifie nous permet de choisir l'index du tableau.
    Ainsi nous avons toute les valeurs de la ligne modifie.
    Enfin j'ai trouve la methode split(";") qui me permet de renvoye dans un autre tableau de string toutes les valeurs comprises entre le ";" dans un string.
    Ainsi via le numero de la colonne qu'on modifie, on fait comme pour la ligne, c'est a dire qu'on mets le num de la colonne comme celui de l'index et nous modifie la valeur dans le tableau.
    Ainsi nous concatenons toutes les valeurs du tableau en un string que nous rajoutons a la place de l'ancienne ligne du tableau.
    Et enfin, nous reecrivons tout le tableau dans le fichier.

    Mes fichiers ne seront jamais tres consequent donc ceci ne pose pas de soucis. Mais je deconseille si tente est que quelqu'un souhaite faire la meme chose pour des fichiers enormes car le temps de traitement ralentirais relativement la machine.

  6. #6
    Membre chevronné
    Profil pro
    Fabrication GED
    Inscrit en
    Octobre 2005
    Messages
    1 405
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Fabrication GED

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 405
    Points : 1 958
    Points
    1 958
    Par défaut
    Le lien que je t'ai mis est la solution au traitement de gros fichiers.
    Et pour info, c'est pas un ralentissement de la machine que tu risques mais le plantage pur et simple de l'application par une OutOfMemoryException.

  7. #7
    Expert confirmé
    Avatar de X-plode
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2005
    Messages
    682
    Détails du profil
    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2005
    Messages : 682
    Points : 4 883
    Points
    4 883
    Par défaut
    Lol iohack pour de tres gros fichiers tres certainement.
    Pour mon cas j'aurais dans le fichier au pire 30 lignes donc pour ma part ca va.
    Merci pour ton lien que je vais reexaminer avec attention.

  8. #8
    Membre régulier Avatar de gelam
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2003
    Messages : 69
    Points : 74
    Points
    74
    Par défaut
    Bonjour,
    Pour éviter la première passe qui compte le nombre de ligne ce qui te permet de dimensionner ton tableau tu pourrais utiliser un LinkedList car celle-ci se dimensionne automatiquement lors de l'ajout (c'est une liste chaînée).
    Avez-vous remarqué les progrès que fait l'ignorance?
    [Tristan Bernard ]

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

Discussions similaires

  1. [WM17] Lire une ligne spécifique d'un fichier.
    Par Papach58 dans le forum Windev Mobile
    Réponses: 3
    Dernier message: 11/03/2014, 23h42
  2. [Débutant] Lire une ligne spécifique depuis un fichier
    Par Sperafico dans le forum VB.NET
    Réponses: 7
    Dernier message: 27/01/2012, 13h00
  3. Ecriture dans une ligne en plusieurs fois
    Par mohammed.badre dans le forum Débuter
    Réponses: 3
    Dernier message: 19/12/2011, 17h57
  4. Insertion dans une table à partir d'un fichier texte
    Par romfauch63 dans le forum Requêtes
    Réponses: 4
    Dernier message: 22/05/2008, 09h37
  5. Réponses: 1
    Dernier message: 20/09/2007, 15h15

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