Sauvegarder Modification dans un fichier JAVA
Fermé
Bonjour tout le monde ,
Mon probleme est le suivant :
je dispose d'une interface , j'affiche le contenu d'un fichier (soit par exemple texte.txt) dans le JTextArea de cette interface, comment je fais si je veux modifier le texte affiché et sauvegarder la modification dans le fichier original ?? si je procede avec une méthode d'écriture le mot ou la phrase modifiée va etre traitée comme étant une nouvelle ligne par contre moi je veux que le mot lui meme soit modifié. Exemple : j'affiche " je m'appele" à partir de texte.txt ----> je modifie dans le JTextarea et je trouve "je m'appelle " dans le texte.txt.
est ce que cela est faisable?? y aurait il quelqu'un qui puisse m'aider pleaaase c'est trés important !!
Mon probleme est le suivant :
je dispose d'une interface , j'affiche le contenu d'un fichier (soit par exemple texte.txt) dans le JTextArea de cette interface, comment je fais si je veux modifier le texte affiché et sauvegarder la modification dans le fichier original ?? si je procede avec une méthode d'écriture le mot ou la phrase modifiée va etre traitée comme étant une nouvelle ligne par contre moi je veux que le mot lui meme soit modifié. Exemple : j'affiche " je m'appele" à partir de texte.txt ----> je modifie dans le JTextarea et je trouve "je m'appelle " dans le texte.txt.
est ce que cela est faisable?? y aurait il quelqu'un qui puisse m'aider pleaaase c'est trés important !!
A voir également:
- Sauvegarder Modification dans un fichier JAVA
- Fichier bin - Guide
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel football - Télécharger - Jeux vidéo
- Comment ouvrir un fichier epub ? - Guide
- Comment réduire la taille d'un fichier - Guide
2 réponses
KX
Messages postés
16760
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
12 février 2025
3 020
9 mai 2012 à 11:38
9 mai 2012 à 11:38
Est-ce que l'affichage correspond à TOUT le fichier, ou juste à une partie ?
Ce qu'il faudrait c'est surement utiliser un TextListener pour écrire dans le fichier lorsque le JTextArea détecte le textValueChanged (peut-être pas à chaque lettre tapée, mais au moins de temps en temps)
Ce qu'il faudrait c'est surement utiliser un TextListener pour écrire dans le fichier lorsque le JTextArea détecte le textValueChanged (peut-être pas à chaque lettre tapée, mais au moins de temps en temps)
Salut KX ,
c'est moi tu m'as déjà aidé dans l'action du bouton : (http://www.commentcamarche.net/forum/affich-25114880-action-bouton-java), et comme je t'ai déjà expliqué dans la question précedente je vais charger une seule ligne à la fois, si y a des modifications à faire je les effectue dans le JTextArea puis le resultat sera sauvegardé dans texte.txt
c'est moi tu m'as déjà aidé dans l'action du bouton : (http://www.commentcamarche.net/forum/affich-25114880-action-bouton-java), et comme je t'ai déjà expliqué dans la question précedente je vais charger une seule ligne à la fois, si y a des modifications à faire je les effectue dans le JTextArea puis le resultat sera sauvegardé dans texte.txt
KX
Messages postés
16760
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
12 février 2025
3 020
9 mai 2012 à 13:05
9 mai 2012 à 13:05
Dans ce cas, c'est un peu plus compliqué, car on ne peut pas en Java modifier juste une ligne, il faudrait relire et réécrire tout le fichier à chaque fois !
Cependant, tu peux envisager de créer un fichier temporaire, qui écrit les champs modifiés au fur et à mesure qu'ils sont lus dans le fichier original, puis une fois le fichier terminé (ou le programme arrêté), écraser le fichier original...
Cependant, tu peux envisager de créer un fichier temporaire, qui écrit les champs modifiés au fur et à mesure qu'ils sont lus dans le fichier original, puis une fois le fichier terminé (ou le programme arrêté), écraser le fichier original...
J'ai trouvé que pour rajouter une action à un JTextArea il faut faire ca :
myArea.getDocument().addDocumentListener(myListener); Cependant je ne comprends pas deux chose :
1.le compilateur n'accepte pas addDocumentListener(myListener) il me dit : No enclosing instance of type DocumentEventDemo is accessible. Must qualify the allocation with an enclosing instance of type DocumentEventDemo (e.g. x.new A() where x is an instance of DocumentEventDemo). je ne comprends pas ce que cela veut dire !!
2.comment je dois écrire myListener ??
j'arrive pas à trouver des exemples simples d'une utilisation de DocumentListener.
myArea.getDocument().addDocumentListener(myListener); Cependant je ne comprends pas deux chose :
1.le compilateur n'accepte pas addDocumentListener(myListener) il me dit : No enclosing instance of type DocumentEventDemo is accessible. Must qualify the allocation with an enclosing instance of type DocumentEventDemo (e.g. x.new A() where x is an instance of DocumentEventDemo). je ne comprends pas ce que cela veut dire !!
2.comment je dois écrire myListener ??
j'arrive pas à trouver des exemples simples d'une utilisation de DocumentListener.
KX
Messages postés
16760
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
12 février 2025
3 020
9 mai 2012 à 18:35
9 mai 2012 à 18:35
Je pense qu'il y a plus simple, en fait j'ai confondu TextArea sur laquelle on peut faire un addTextListener, et JTextArea, qui s'utilise plutôt avec addKeyListener, c'est à dire que l'action n'est pas lancé lorsque le texte change (y compris automatiquement), mais lorsque l'on appuie sur une touche (uniquement par l'utilisateur), ce qui rend les choses à un peu plus simple.
final JTextArea myArea = new JTextArea(); myArea.addKeyListener(new KeyListener() { public void keyPressed(KeyEvent e) {} public void keyTyped(KeyEvent e) {} public void keyReleased(KeyEvent e) { String s = myArea.getText(); enregistrer(s); // enregistrer dans le fichier } });
KX
Messages postés
16760
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
12 février 2025
3 020
9 mai 2012 à 18:54
9 mai 2012 à 18:54
Cependant, cela n'a plus trop d'intérêt si on utilise un deuxième fichier, et en lisant ligne par ligne.
On n'aura qu'à juste enregistrer la ligne dans le fichier telle qu'elle est dans le JTextArea, et ce au moment où l'on lit la ligne suivante dans le fichier d'origine.
Étapes :
On n'aura qu'à juste enregistrer la ligne dans le fichier telle qu'elle est dans le JTextArea, et ce au moment où l'on lit la ligne suivante dans le fichier d'origine.
Étapes :
1) lire une ligne dans le fichier d'origine 2) afficher la ligne dans le JTextArea 3) modification (ou non) de la ligne par l'utilisateur 4) enregistrement de la ligne 5) retour en 1