importer un fichier (txt ou non)
bonjour
aussi clairement que possible voici mon probleme ( du moment)
pour importer un fichier txt, situe quelque part sur le disque dur, jusque dans le JTextPane de mon appli je n'ai pas trouver autre chose que de passer par un fichier temporaire situer lui dans les ressources de mon appli : sa marche textPane.setPage(url); ...sauf que sa ne fonctionne qu'une seule fois:( .les requettes suivante sur setPage(url) sont sans effet visible l'url en question ne changeant pas... donc pour resumer mon probleme : je ne suis pas arriver a importer un fichier disons text directement dans nom JTextPane... deja est-se possible ?
Et de plus pour exporter le text de ce JText Pane dans un fichier je passe par un StringBufferInputStream sa aussi sa marche mais sa as l'inconvenient d'etre deprecier :? pui-je passer par un autre InputStream ? certainement que oui mais lequel je n'ai pas su trouver..:oops:
peut etre pourrais vous m'aider !8O
simple methode pour lire et ecrire dans un fichier
bonjours ,
pour ton probleme voila deus methode l'une pour ecrire dans une fichier et l'autre pour lire :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106
| // io = input/output (entrée/sortie)
import java.io.*;
//ce package est necessaire pour executer ce programme
//appellez bien votre fichier Test.java
public class Test
{
//fonction main
public static void main(String args[])
{
String texteaecrire = "texte...\nsaut de ligne";
Lireetecrire lee = new Lireetecrire();
//execution de la fonction ecrire de la classe Lireetecrire avec le String texteaecrire comme argument
lee.ecrire(texteaecrire);
//execution de la fonction lire de la classe Lireetecrire
lee.lire();
}
}
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 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") + "\\monfichier.txt";
//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 void lire()
{
try
{
String adressedufichier = System.getProperty("user.dir") + "\\monfichier.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
System.out.println(texte);
//on affiche le texte
}
catch(IOException ioe){System.out.println("erreur : " + ioe);}
}
} |