Se connecter / S'enregistrer
Votre question

ecrire et lire un fichier .TXT avec java

Tags :
  • Java
  • Programmation
Dernière réponse : dans Programmation
20 Avril 2008 15:34:52

bonjour tout le monde

comment je peux enregistrer des données sur un fichier .txt avec java

l'utilisateur fait rentrer des données et quand il tape sur enregistrer aprés avoir rentrer le nom du fichier les données sont enregistrées dans un fichier .TXT


et comment je peux ouvrir un fichier .txt et recuperer ces données

je sais que le sujet est abordé pas mal de fois mais je n'arrive pas à l'appliquer

SVP j'attends vos reponses je suis bloquée

Autres pages sur : ecrire lire fichier txt java

a b L Programmation
20 Avril 2008 16:24:58

FileOutputStream et FileInputStream
12 Septembre 2009 06:47:18

Bonjour à tous,

ça fait un bon moment que le sujet est inactif mais je tombe dessus aujourd'hui, et je trouve que c'est une question que beaucoup de personnes pourraient se poser

Mais "FileOutputStream et FileInputStream", c'est vraiment pas clair... :??: 
en plus utiliser FileOutputStream et FileInputStream sans buffer ce n'est pas terrible



Pour enregister une donnée dans un fichier .txt, tu doit d'abord te demander si tu enregistre un objet ou un type primitif (integer, double, float...)

Si tu doit enregistrer des objets, tu doit importer le package java.io.Serializable
exemple : on a une classe "Livre", tu voudrait enregistrer un objet livre un moment...
et bien il faut rentrer cette ligne de code tout en haut de ta classe :
  1. import java.io.Serializable;


et déclarer ta classe de cette façon :
  1. public class Livre implements Serializable


(sans ça tes objets ne pourront pas être sauvegardé. La serialisation, c'est le nom qu'on donne à l'action de sauvegarder un objet)


pour enregistrer un objet, tape ce code :

  1. Livre monLivre;
  2. ObjectOutputStream oos;
  3. try{
  4. oos = new ObjectOutputStream(new BufferedOutputStream(new FileOutputStream(new File("tonFichierTexte.txt"))));
  5. oos.writeObject(monLivre);
  6. oos.close();
  7. }
  8. catch (java.io.IOException e) {e.printStackTrace();}



pour lire l'objet, tape ce code :

  1. ObjectInputStream ois;
  2. try
  3. {
  4. ois = new ObjectInputStream(new BufferedInputStream(new FileInputStream(new File("tonFichierTexte.txt"))));
  5. monLivre = (Livre)ois.readObject();
  6. ois.close();
  7. }
  8. catch (IOException e) {e.printStackTrace();}
  9. catch (ClassNotFoundException e2) {e2.printStackTrace();}




Si tu doit juste lire et/ou écrire des types primitifs, tu n'as pas besoin d'importer le package java.io.Serialisable, ni d'implémenter "Serializable" à ta classe Livre

pour enregistrer un type primitif dans un fichier texte tape ce code :

  1. int nombre;
  2. try {
  3. dos = new DataOutputStream(new BufferedOutputStream(new FileOutputStream(new File("tonFichierTexte.txt"))));
  4. dos.writeInt(nombre);
  5. dos.close();
  6. }
  7. catch (java.io.IOException e) {e.printStackTrace();}


(si tu doit enregistrer un double au lieu d'un int par exemple, remplace la fonction writeInt, par writeDouble...)


Pour lire un type primitif dans un fichier texte, tape ce code :

  1. try
  2. {
  3. dis = new DataInputStream(new BufferedInputStream(new FileInputStream(new File("saveNbGenres.txt"))));
  4. nbGenres = dis.readInt();
  5. dis.close();
  6. }
  7. catch (java.io.IOException e) {e.printStackTrace();}


(même chose ici, si tu doit lire un type différent, remplace la fonction readInt, par readFloat, ou readDouble...)




Pour écrire ou lire plusieurs données, tu n'as qu'a faire une boucle, dans ce genre :

  1. int nombre, i, nombreMax;
  2. try {
  3. dos = new DataOutputStream(new BufferedOutputStream(new FileOutputStream(new File("tonFichierTexte.txt"))));
  4. i = 0;
  5. while (i < nombreMax) {
  6. dos.writeInt(nombre);
  7. }
  8. dos.close();
  9. }
  10. catch (java.io.IOException e) {e.printStackTrace();}



procède le la même façon pour lire plusieurs données.

(note : la 1ère donnée écrite, sera la 1ère lue. On parle de FIFO, First In First Out)


quand tu écris dans un fichier (avec oos ou dos) le fichier sera créé (dans le repertoire où se situe le main) si il n'existe pas. Par contre si tu essai de lire (avec ois ou dis) un fichier qui n'existe pas, cela va générer une erreur.



J'espère que ceci pourra en aider quelques uns :hello: 
Contenus similaires
a b L Programmation
13 Septembre 2009 20:34:16

Enfin une remontée de topic utile. :) 
8 Avril 2012 20:33:03

slack_457 a dit :
Bonjour à tous,

ça fait un bon moment que le sujet est inactif mais je tombe dessus aujourd'hui, et je trouve que c'est une question que beaucoup de personnes pourraient se poser

Mais "FileOutputStream et FileInputStream", c'est vraiment pas clair... :??: 
en plus utiliser FileOutputStream et FileInputStream sans buffer ce n'est pas terrible



Pour enregister une donnée dans un fichier .txt, tu doit d'abord te demander si tu enregistre un objet ou un type primitif (integer, double, float...)

Si tu doit enregistrer des objets, tu doit importer le package java.io.Serializable
exemple : on a une classe "Livre", tu voudrait enregistrer un objet livre un moment...
et bien il faut rentrer cette ligne de code tout en haut de ta classe :
  1. import java.io.Serializable;


et déclarer ta classe de cette façon :
  1. public class Livre implements Serializable


(sans ça tes objets ne pourront pas être sauvegardé. La serialisation, c'est le nom qu'on donne à l'action de sauvegarder un objet)


pour enregistrer un objet, tape ce code :

  1. Livre monLivre;
  2. ObjectOutputStream oos;
  3. try{
  4. oos = new ObjectOutputStream(new BufferedOutputStream(new FileOutputStream(new File("tonFichierTexte.txt"))));
  5. oos.writeObject(monLivre);
  6. oos.close();
  7. }
  8. catch (java.io.IOException e) {e.printStackTrace();}



pour lire l'objet, tape ce code :

  1. ObjectInputStream ois;
  2. try
  3. {
  4. ois = new ObjectInputStream(new BufferedInputStream(new FileInputStream(new File("tonFichierTexte.txt"))));
  5. monLivre = (Livre)ois.readObject();
  6. ois.close();
  7. }
  8. catch (IOException e) {e.printStackTrace();}
  9. catch (ClassNotFoundException e2) {e2.printStackTrace();}




Si tu doit juste lire et/ou écrire des types primitifs, tu n'as pas besoin d'importer le package java.io.Serialisable, ni d'implémenter "Serializable" à ta classe Livre

pour enregistrer un type primitif dans un fichier texte tape ce code :

  1. int nombre;
  2. try {
  3. dos = new DataOutputStream(new BufferedOutputStream(new FileOutputStream(new File("tonFichierTexte.txt"))));
  4. dos.writeInt(nombre);
  5. dos.close();
  6. }
  7. catch (java.io.IOException e) {e.printStackTrace();}


(si tu doit enregistrer un double au lieu d'un int par exemple, remplace la fonction writeInt, par writeDouble...)


Pour lire un type primitif dans un fichier texte, tape ce code :

  1. try
  2. {
  3. dis = new DataInputStream(new BufferedInputStream(new FileInputStream(new File("saveNbGenres.txt"))));
  4. nbGenres = dis.readInt();
  5. dis.close();
  6. }
  7. catch (java.io.IOException e) {e.printStackTrace();}


(même chose ici, si tu doit lire un type différent, remplace la fonction readInt, par readFloat, ou readDouble...)




Pour écrire ou lire plusieurs données, tu n'as qu'a faire une boucle, dans ce genre :

  1. int nombre, i, nombreMax;
  2. try {
  3. dos = new DataOutputStream(new BufferedOutputStream(new FileOutputStream(new File("tonFichierTexte.txt"))));
  4. i = 0;
  5. while (i < nombreMax) {
  6. dos.writeInt(nombre);
  7. }
  8. dos.close();
  9. }
  10. catch (java.io.IOException e) {e.printStackTrace();}



procède le la même façon pour lire plusieurs données.

(note : la 1ère donnée écrite, sera la 1ère lue. On parle de FIFO, First In First Out)


quand tu écris dans un fichier (avec oos ou dos) le fichier sera créé (dans le repertoire où se situe le main) si il n'existe pas. Par contre si tu essai de lire (avec ois ou dis) un fichier qui n'existe pas, cela va générer une erreur.



J'espère que ceci pourra en aider quelques uns :hello: 


Bonjour et merci. J'ai testé ces codes mais pour certains il y a un problème (par exemple rien n'a été écrit dans le fichier) . A quoi cela peut-il être du ?

Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS