azerty_qwerty
Messages postés64Date d'inscriptionvendredi 23 mars 2018StatutMembreDernière intervention 6 décembre 2022
-
Modifié le 8 mai 2018 à 23:34
azerty_qwerty
Messages postés64Date d'inscriptionvendredi 23 mars 2018StatutMembreDernière intervention 6 décembre 2022
-
5 juin 2018 à 14:25
Bonjour,
Lors de l'execution du programme, je lis un fichier text qui contient un chemin d'accès à un dossier. Je stocke ce chemin d'accès (
texte
) dans un String
Fenetre1.CheminDossierBou
. Malheureusement ce chemin d'accès ne peut être exploité car il y a systématiquement à la fin le mot "NULL" ....
public class Lireetecrire { //fonction ecrire void = la fonction ne retourne rien //mais prend comme argument la chaine de charactere(Sring) texte qui correspond a texteaecrire public static void ecrire(String texte) { //on va chercher le chemin et le nom du fichier et on me tout ca dans un String String adressedufichier = System.getProperty("user.dir") + "\\cheminDossier.txt";
// je supprime le fichier dans un premier temps pour éviter qu'il contienne plusieurs chemins File fichier = new File(adressedufichier); fichier.delete(); //on me try si jamais il y a une exception \\ try { //BufferedWriter a besoin d un FileWriter, //les 2 vont ensemble, on donne comme argument le nom du fichier //true signifie qu on ajoute dans le fichier (append), on ne marque pas par dessus FileWriter fw = new FileWriter(adressedufichier, true);
// le BufferedWriter output auquel on donne comme argument le FileWriter fw cree juste au dessus BufferedWriter output = new BufferedWriter(fw);
//on marque dans le fichier ou plutot dans le BufferedWriter qui sert comme un tampon(stream) output.write(texte); //on peut utiliser plusieurs fois methode write
output.flush(); //ensuite flush envoie dans le fichier, ne pas oublier cette methode pour le BufferedWriter
output.close(); //et on le ferme
} catch(IOException ioe){System.out.println("erreur : " + ioe );} //on "catch" l exception ici si il y en a une, et on l affiche sur la console
}
//je vais moins commenter cette partie c'est presque la meme chose public static void lire() { try { String adressedufichier = System.getProperty("user.dir") + "\\cheminDossier.txt"; FileReader fr = new FileReader(adressedufichier); BufferedReader br = new BufferedReader(fr); String texte = ""; int a = 0; while(a<2) //petite boucle 2 fois { texte = texte + br.readLine() + "\n"; a++; } br.close();
//readLine pour lire une ligne //note: si il n y a rien, la fonction retournera la valeur null
azerty_qwerty
Messages postés64Date d'inscriptionvendredi 23 mars 2018StatutMembreDernière intervention 6 décembre 2022 16 mai 2018 à 17:53
Bonjour, Merci pour la réponse. Mais j'ai eu du mal à utiliser le code. éclipse me demande une méthode pour le "Path" et ne reconnais pas import nio.
Du coup j'ai trouvé un autre code : https://www.ukonline.be/programmation/java/tutoriel/chapitre12/page4.php
double[] data = {15.9, 21.2, 18.4, 25.4, 31.1}; File f = new File ("temperatures");
try { PrintWriter pw = new PrintWriter (new BufferedWriter (new FileWriter (f)));
for (double d : data) { pw.println (d); }
pw.close(); } catch (IOException exception) { System.out.println ("Erreur lors de la lecture : " + exception.getMessage()); }
KX
Messages postés16700Date d'inscriptionsamedi 31 mai 2008StatutModérateurDernière intervention25 mai 2023126 16 mai 2018 à 19:46
"éclipse me demande une méthode pour le "Path" et ne reconnais pas import nio." Tu dois utiliser une vieille version de Java pour avoir ce comportement...
Les classes java.nio.file existent depuis Java 7 (sorti en 2011).
Quant à mon code il est écrit en Java 8 et à un petit détail près il pourrait fonctionner en Java 7.
Mais si tu es sur une version Java 6 ou moins, il faut absolument te mettre à jour.
azerty_qwerty
Messages postés64Date d'inscriptionvendredi 23 mars 2018StatutMembreDernière intervention 6 décembre 2022 2 juin 2018 à 23:03
oui je suis en java 6. est ce possible de convertir tout mon code en java 8 ? Si je dois tout recommencer ....
KX
Messages postés16700Date d'inscriptionsamedi 31 mai 2008StatutModérateurDernière intervention25 mai 2023126 3 juin 2018 à 00:08
Dans la plupart des cas, un code dans une version de Java fonctionnera dans une version de Java supérieure.
Il y a des exceptions, mais elle ne concerneront probablement pas ton code ou seront faciles à modifier.
L'intérêt de passer à une version plus récente est de pouvoir utiliser toutes les nouvelles fonctionnalités qui vont avec, notamment les packages java.nio dont je me suis servi.
NB. Java 8 est la dernière version "recommandée" sur java.com et c'est donc celle que les utilisateurs devraient avoir sur leur système (avec les mises à jour automatiques notamment).
Donc si ton code ne fonctionne que en Java 6 (mais pas en Java 8) alors tes utilisateurs ne pourront pas se servir...
Pour information, la dernière version c'est Java 10 (Java 11 sort en septembre). Donc Java 6... aux oubliettes !
azerty_qwerty
Messages postés64Date d'inscriptionvendredi 23 mars 2018StatutMembreDernière intervention 6 décembre 2022 3 juin 2018 à 23:58
en fait le code est reconnu en java 9. Ouf !
KX
Messages postés16700Date d'inscriptionsamedi 31 mai 2008StatutModérateurDernière intervention25 mai 2023126
>
azerty_qwerty
Messages postés64Date d'inscriptionvendredi 23 mars 2018StatutMembreDernière intervention 6 décembre 2022 4 juin 2018 à 08:34
Pourquoi Java 9 ? C'était une version de transition dont le support n'est déjà plus assuré...
Soit tu restes sur du Java 8 (version qu'ont la majorité des utilisateurs), soit tu prends la dernière version, Java 10.
Sachant que Java 10 est également une version de transition, comme Java 9.
Seul Java 11 bénéficiera d'un Support à Long Terme (jusqu'en 2023), les utilisateurs finaux seront donc amenés à mettre à jour leur version de Java en passant de Java 8 à Java 11 (Java 9 et 10 n'auront "jamais existé").