Ecrire dans un fichier texte
Fermé
Linquisiteur
-
26 mars 2013 à 21:38
KX Messages postés 16752 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 août 2024 - 26 mars 2013 à 22:40
KX Messages postés 16752 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 août 2024 - 26 mars 2013 à 22:40
A voir également:
- Ecrire dans un fichier texte
- Fichier rar - Guide
- Comment ouvrir un fichier epub ? - Guide
- Comment réduire la taille d'un fichier - Guide
- Fichier host - Guide
- Ouvrir un fichier .bin - Guide
2 réponses
KX
Messages postés
16752
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
31 août 2024
3 019
Modifié par KX le 26/03/2013 à 22:04
Modifié par KX le 26/03/2013 à 22:04
while (tab[cpt]!=null)Ça n'a pas de sens d'écrire ceci puisque tu n'as jamais de valeur null dans ton tableau, du coup ton cpt++ continue et tu te retrouves au delà des limites de ton tableau d'où un joli : java.lang.ArrayIndexOutOfBoundsException: 5 (ici le 5 correspond à l'indice qui plante, puisqu'un tableau de 5 cases a des indices de 0 à 4)
Il faut plutôt écrire ta boucle avec une condition d'arrêt sur la taille du tableau :
while (cpt<tab.length)Cependant pour ce genre de codes je te conseilles d'utiliser une boucle for :
for (int cpt=0; cpt<tab.length; cpt++)Voire une boucle for each :
for (String str : tab)Remarques :
""+tab[cpt]le ""+ est totalement inutile, il alourdit le code, et le programme pour rien...
Et les commentaires en /** */ sont spécifiques à la documentation Java, elle doit respecter un certain format qu'il est intéressant de connaître, et qu'Eclipse t'aide à écrire :
/** * Description de la méthode. * @param tab rôle du paramètre * @throws FileNotFoundException cause(s) de l'exception */ public static void ecrire (String tab[]) throws FileNotFoundException { PrintWriter outputFile = new PrintWriter("nom.txt"); for (String str : tab) outputFile.println(str); outputFile.close(); }
merci encore KK tu as encore résolu mon problème ^^
Je n'ai pas compris pour la boucle each par contre.. Je ne l'ai jamais vu..
Elle sert a écrire dans le fichier?
Je vais commencer a tenter la lecture maintenant.. si tu as des conseil ;)
Sinon je vais chipoter dans mon coin ^^"
Je n'ai pas compris pour la boucle each par contre.. Je ne l'ai jamais vu..
Elle sert a écrire dans le fichier?
Je vais commencer a tenter la lecture maintenant.. si tu as des conseil ;)
Sinon je vais chipoter dans mon coin ^^"
KX
Messages postés
16752
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
31 août 2024
3 019
26 mars 2013 à 22:40
26 mars 2013 à 22:40
"la boucle each par contre. [...] Elle sert a écrire dans le fichier?"
Non, pas du tout. La boucle for each permet de lire les éléments dans le tableau les uns après les autres. Ces trois codes font la même chose :
L'avantage de la boucle for each c'est qu'elle est plus rapide puisqu'il n'y a pas d'initialisation, pas d'incrémentation, pas de test d'arrêt, et pas de recherche de la case (ce qui limite aussi les risques d'erreurs dans le code).
De plus cette boucle s'applique de la même manière sur les tableaux que sur les Collection. Les éléments sont lus les uns derrière les autres jusqu'à la fin. Elle remplace donc la plupart des utilisations des Iterator...
Non, pas du tout. La boucle for each permet de lire les éléments dans le tableau les uns après les autres. Ces trois codes font la même chose :
int cpt=0; while (cpt<tab.length) { outputFile.println(tab[cpt]); cpt++; } for (int cpt=0; cpt<tab.length; cpt++) outputFile.println(tab[cpt]); for (String str : tab) outputFile.println(str);
L'avantage de la boucle for each c'est qu'elle est plus rapide puisqu'il n'y a pas d'initialisation, pas d'incrémentation, pas de test d'arrêt, et pas de recherche de la case (ce qui limite aussi les risques d'erreurs dans le code).
De plus cette boucle s'applique de la même manière sur les tableaux que sur les Collection. Les éléments sont lus les uns derrière les autres jusqu'à la fin. Elle remplace donc la plupart des utilisations des Iterator...