Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1366 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  sauvegarder un fichier

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

sauvegarder un fichier

n°1114221
unknown_21
Posté le 09-06-2005 à 15:55:55  profilanswer
 

Bonjour,
J'ai un texte dans un JTextArea que je veux sauvegarder. En cliquant sur le bouton sauvegarder de l'interface, une fenetre apparait: l'utilisateur entre le nom du fichier et choisit l'endroit ou il doit le mettre. Je n'ai pas d'erreur, ni a la compilation ni à l'execution. Mais le fichier n'est pas crée au bon endroit: il se trouve dans le repertoire de mon projet sous eclipse...et je sais pas comment faire pour que le fichier se mette dans l'endroit spécifié par l'utilisateur.
Merci


Message édité par unknown_21 le 09-06-2005 à 16:01:45
mood
Publicité
Posté le 09-06-2005 à 15:55:55  profilanswer
 

n°1114236
Machiiine
Posté le 09-06-2005 à 16:03:23  profilanswer
 

Je suis pas un habitué du forum, mais à mon avis sans un bout de code, on ne saura pas bcp t'aider

n°1114258
unknown_21
Posté le 09-06-2005 à 16:11:27  profilanswer
 

ok voici mon code:

Code :
  1. public class EcrireFichier {
  2. FileOutputStream fichier;
  3. ObjectOutputStream objet;
  4. public EcrireFichier (String nomFichier) throws FileNotFoundException, IOException {
  5.  fichier = new FileOutputStream(nomFichier);
  6.  objet = new ObjectOutputStream(fichier);
  7. }
  8. public void ecrireFichierInter (String texte) throws IOException {
  9.  objet.writeObject(texte);
  10. }
  11. public void fermer() throws IOException{
  12.  objet.close();
  13. }
  14. }


Code :
  1. public void actionPerformed(ActionEvent e) {
  2.  fc = new JFileChooser();
  3.  int returnVal = fc.showSaveDialog(fenetre);
  4.  if (returnVal == JFileChooser.APPROVE_OPTION) {
  5.   File file = fc.getSelectedFile();
  6.   String filename = file.getName();
  7.   String contenu = zone_texte2.getText();
  8.     
  9.      try
  10.       EcrireFichier fichierInter = new EcrireFichier(filename);
  11.       fichierInter.ecrireFichierInter(contenu);
  12.       fichierInter.fermer();
  13.      }
  14.      catch(FileNotFoundException e1){System.out.println("FileNotFoundException" );}
  15.      catch(IOException e2){System.out.println("IOException" );}
  16.     }
  17.     else
  18.     if (returnVal == JFileChooser.CANCEL_OPTION){
  19.          zone_texte2.setText("Opération annulée." );
  20.     }
  21. }


 
En fait, je pensais que le fait que l'utilisateur choisisse l'endroit ou sauvegarder le fichier suffisait. Mais apparemment non. Il faut surement récupérer cet endroit mais je ne sais pas comment faire.
Merci

n°1114325
gedeon
Posté le 09-06-2005 à 16:28:33  profilanswer
 

file.getName(); te renvoi juste le nom du fichier
C'est marqué dans l'aide !!  
Comme tu recupere un objet file , tu peux aussi avoiir le path normalement
 

n°1114351
unknown_21
Posté le 09-06-2005 à 16:36:51  profilanswer
 

oui il y a la methode getPath(). Mais dans ma classe EcrireFichier, la méthode EcrireFichier prend en parametre le nom du fichier. Meme si je rajoute en parametre le chemin (obtenu par getPath()) , je le réutilise comment ce chemin? Avec quelle méthode? Quelle méthode permet de dire que l'on veut mettre tel fichier (nom obtenu avec getName() à tel endroit (chemin obtenu avec getPath() )?
merci

n°1114376
gedeon
Posté le 09-06-2005 à 16:45:57  profilanswer
 

c une blague rassure  moi ?

n°1114403
unknown_21
Posté le 09-06-2005 à 16:54:30  profilanswer
 

je perdrais pas mon temps à faire des blagues. Je débute en java et j'ai des problemes donc je viens sur le forum pour avoir de l'aide. et si t'as pas envie de répondre, tu le fais pas, d'autres auront la gentillesse de le faire et de comprendre que qd on débute, on a pleins de pbs, surement basiques pour certains mais ils ont du passer par la aussi. Toi aussi, qd t'as commencé à programmer, t'as du poser des questions à la con.

n°1114443
gedeon
Posté le 09-06-2005 à 17:05:16  profilanswer
 

Sauf qu'on est pas la pour regarder a ta place dans l'aide.
Et que le fait de debuter en java ne t'excuse pas sur le fait de ne pas savoir ce qu'est une string et un path.
"c\tonrepertoire\"   +  "tonfichierala.con"  = "c\tonrepertoire\tonfichierala.con" .....
 

n°1114462
unknown_21
Posté le 09-06-2005 à 17:11:23  profilanswer
 

sauf que tu n'as pas compris ce que je n'arrive pas à faire. Dans le code que j'ai mis, a quel moment est indiqué l'endroit ou doit aller le fichier à sauvegarder? car il va dans le repertoire de mon projet sous eclipse. Or ce n'est pas là que je veux qu'il aille. Donc il suffirait juste que je change l'endroit (et ça je saurais faire a priori). Mais deja, il faut que je sache dans mon code, ou je dois modifier (quelle methode ou quel parametre...).

n°1114640
phnatomass
Je m'empare de ton esprit !!
Posté le 09-06-2005 à 18:43:38  profilanswer
 

T'as regarder les constructeurs de JFileChooser ?
http://java.sun.com/j2se/1.5.0/doc [...] ng.String)

mood
Publicité
Posté le 09-06-2005 à 18:43:38  profilanswer
 

n°1115414
unknown_21
Posté le 10-06-2005 à 10:50:38  profilanswer
 

ok j'ai réussi. Je suis pas sur que ce soit une methode "propre" mais ça fonctionne... Je n'ai pas utiliser le constructeur de JFileChooser avec le path en parametre, mais merci quand meme phnatomass de ton aide.

n°1115418
gedeon
Posté le 10-06-2005 à 10:52:40  profilanswer
 

Si tu passe un nom de fichier sans passer le chemin, l'appli va prendre ....  
1/ le nom du fichier uniquement et va creer ton fichier dans le rep courant de l'appli  
2/ un chemin au hazard dans son chapeau magique  
3/ le chemin que tu veux grace a sa boule de cristal
 
La reponse est 1, ne t'embete pas a chercher on est la pour ça !!
 
Donc au lieu de passer une string representant uniquement le nom de ton fichier a ton constructeur tu passes l'objet File qui contient le chemin d'accès au fichier !!!  
En plus Ho miracle le constructeur FileOutputStream accepte aussi les objet File.
C'est une des nombreuses solution ...
 
Comme je sais lire j'ai juste regardé un peu la doc des objets que tu utilises
Le fait que tu debute n'est pas le PB tu vois !!
 
 
 

n°1115448
unknown_21
Posté le 10-06-2005 à 11:10:25  profilanswer
 

si, gedeon, qd on est débutant, c'est pas évident de savoir ou est le probleme. Ce n'est absolument pas que je ne veux pas chercher dans la doc car j'ai cherché longtemps avant de poster le message. Mais je n'avais aucune idée d'ou venait le probleme. La classe EcrireFichier, c'est un prof qui nous l'a donnée et qui nous a dit de la laisser telle quelle car ça fonctionnait tout le temps comme ça. Donc je ne me suis pas dit que le probleme pouvait venir de là. La solution que j'ai fini par trouver est celle que tu as écrit (passer un File en parametre de FileOutputStream). Mais j'ai mis du temps à la trouver. Et là ou je me dis que ce forum ne sert pas à grand chose, c'est que tu aurais pu me le dire hier puisque tu savais. Pas me donner la réponse toute faite, c'est vrai que c'est aussi à moi de chercher. Mais me donner une piste. Comme l'a fait phnatomass, meme si ce n'est pas ce que j'ai utilisé.

n°1115514
gedeon
Posté le 10-06-2005 à 11:51:40  profilanswer
 

Bon je vais conclure la dessus.
Comme je t'ai dis la solution que je t'ai donné est une des nombreuses solutions. Ton prof t'as dis que sa fonction marchait telle que, donc il ne faut pas la modifier et la solution n'est pas la bonne à priori.
Je t'ai quand meme donné une piste :
""c\tonrepertoire\"   +  "tonfichierala.con"  = "c\tonrepertoire\tonfichierala.con" ..... "
Essaye de passer le chemin complet au lieu du nom dans la chaine nomFichier , cad file.getPath + "\\" + file.getName()
ça devrait marcher. c'est a vérifier.
Resultat je t'ai donné deux solutions que je n'avait pas forcement en tete avant de regarder l'aide.
En dehors de l'experience qui nous sépare il y a surtout le fait que j'ai "appri" a chercher, c tout. Hélas je ne suis pas sur que ça soit dans les préoccupation des profs.

n°1115539
unknown_21
Posté le 10-06-2005 à 12:02:47  profilanswer
 

ok je te remercie.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  sauvegarder un fichier

 

Sujets relatifs
suppression d'une ligne d'un fichier en vbaSauvegarder/Lire des objets depuis un fichier
[c++] sauvegarder code source IE dans un fichier...[PHP] Sauvegarder le résultat d'une requête dans un fichier excel ?
Comment sauvegarder des données dans un fichier ?[VB] comment sauvegarder une image dans un fichier
[Java] Sauvegarder des données ds un fichier xmlsauvegarder un fichier .xls en VB
Comment sauvegarder une macro Excel dans un fichier *.xla ???sauvegarder le resultat d'une commande SQL dans un fichier
Plus de sujets relatifs à : sauvegarder un fichier


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR