cs_Kouikoui
Messages postés23Date d'inscriptionlundi 30 juin 2003StatutMembreDernière intervention26 mars 2007
-
2 août 2006 à 10:40
cs_Kouikoui
Messages postés23Date d'inscriptionlundi 30 juin 2003StatutMembreDernière intervention26 mars 2007
-
3 août 2006 à 17:26
Bonjour,
J'ai une appli avec une JFrame qui contient une JTextArea. Je voudrais enregistrer le texte contenu dans la JTextArea, mais plusieurs problèmes s'opposent à moi :
- J'utilise la méthode JFileChooser.showSaveDialog(getParent);
Mais je ne sais pas comment préciser à mon output stream que le nom du fichier est celui qui est saisi dans la SaveDialog.
- Par ailleurs, je ne sais pas comment procéder pour que mon output stream contienne le texte de ma JTextArea. Faut-il utiliser un InputStream pour lire ce qu'il y a dedans ?
Voila le code que j'utilise pour le moment, mais qui ne fonctionne pas ... :S:(
JFileChooser chooser = new JFileChooser("C:\");
int returnVal = chooser.showSaveDialog(getParent());
if(returnVal == JFileChooser.APPROVE_OPTION)
{
FileReader fr = null;
try
{
fr = new FileReader(new File(txtArea.getText()));
BufferedReader buffRead = new BufferedReader(fr);
String ligne;
StringBuffer contenu = new StringBuffer();
public class Test extends JFrame implements ActionListener{
private static final long serialVersionUID = -1570645570118871214L;
private JButton btSave = null;
private JButton btClose = null;
private JTextArea area = null;
public Test(){
JPanel contentPane = (JPanel)getContentPane();
contentPane.setLayout(new GridBagLayout());
private JTextArea getArea(){
if(area == null){
area = new JTextArea();
area.setText("");
area.setWrapStyleWord(true);
area.setLineWrap(true);
}
return area;
}
public void actionPerformed(ActionEvent e) {
if(e.getSource().equals(getBtClose())){
dispose();
}else if(e.getSource().equals(getBtSave())){
JFileChooser chooser = new JFileChooser(File.listRoots()[0]);
//dans ce cas il faut mettre soit meme le nom du fichier ou le recup autrement
//chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
int ret = chooser.showSaveDialog(this);
if(ret == JFileChooser.APPROVE_OPTION){
//recuperation du fichier selectionné (tu peux aussi mettre un fichier qui n'existe pas)
File f = chooser.getSelectedFile();
if(!f.canWrite()){//petit test pour eviter les exceptions
JOptionPane.showMessageDialog(this,
"<html>Impossible d'écrire ici !!!</html>",
"Erreur", JOptionPane.ERROR_MESSAGE);
return;
}
try {
FileWriter fw = new FileWriter(chooser.getSelectedFile());
fw.write(getArea().getText());//ecriture du texte
fw.flush();
fw.close();
} catch (Exception ioe) {
ioe.printStackTrace();
}
}
}
}
public static void main(String [] args){
new Test().setVisible(true);
}
}
------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."
cs_Kouikoui
Messages postés23Date d'inscriptionlundi 30 juin 2003StatutMembreDernière intervention26 mars 2007 2 août 2006 à 16:08
Salut,
J'ai effectivement retiré le "C:\" dans le constructeur du JFileChooser ...
J'avourai ne pas avoir fait attention à la portabilité de mon code qui ne sera utilisé que sur Windows...
Pour le reste, je savais comment récupérer le fichier sélectionné, là n'était pas le problème ...
Il me faut enregistrer dans un fichier texte, les données contenues dans ma JTextArea.
Twinuts
Messages postés5375Date d'inscriptiondimanche 4 mai 2003StatutModérateurDernière intervention14 juin 2023111 2 août 2006 à 16:20
Salut,
si tu ne veux pas de portabilitée aucun interet de faire du java
et d'ajouter la lourdeur et contrainte d'une jvm à ton appli le mieux
encore c'est de faire dans le .Net enfin c'est mon avis.
pour ton prob tu peux simplement faire :
FileWriter fw = new FileWriter(new File("plop.txt"), append);
fw.write(txtArea.getText());
fw.flush();
fw.close();
d'ailleur je ne comprend pas pourquoi tu fais :
fr = new FileReader(new File(txtArea.getText()));
txtArea.getText() c'est le nom et (ou) chemin d'un fichier ou de la data pure et dure?
pour info favorise System.getProperty("line.separator"); plutot que "\r\n"
------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."
WORA
Vous n’avez pas trouvé la réponse que vous recherchez ?