Java

Fermé
ssss - 15 nov. 2012 à 22:13
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 - 19 nov. 2012 à 12:52
Bonjour,
j'aimerais savoir comment peut on écrire a partir de la console (en java) dans un fichier texte,



A voir également:

2 réponses

KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019
16 nov. 2012 à 12:52
Simplement :
Tu ouvres un fichier (FileWriter)
Tu lis les lignes sur la console (Scanner), et tu les mets dans le fichier.
0
try   
{   
    FileWriter writer;   
    JFileChooser chooser = new JFileChooser();     
    int returnVal = chooser.showOpenDialog(null);   
       
    if(returnVal == JFileChooser.APPROVE_OPTION)   
    {   
     File file = chooser.getSelectedFile();    
     String path = file.getAbsolutePath();   
     writer = new FileWriter(path, false);   
    
     writer.write("Coucou\n");   
     writer.flush();   
     writer.close();   
     }   
}    
catch (Exception ex) {     }
0
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019
16 nov. 2012 à 16:58
Quelques petits conseils :
1) showSaveDialog (pour enregistrer un fichier) serait plus approprié ici que showOpenDialog
2) FileWriter accepte des constructeurs avec File, il n'est pas nécessaire de passer par le path, de plus le boolean false est la valeur par défaut, tu peux donc ne pas le préciser.
3) Quand tu écris dans un fichier il vaut mieux utiliser System.lineSeparator() plutôt que "\n" vu que sous Windows par exemple la fin de ligne c'est "\r\n" il en manque un morceau...
4) Un flush est inutile avec un close juste après, d'ailleurs il est en général inutile pour les fichiers, c'est une méthode héritée de OutputStream qui a surtout un intérêt pour des flux qui ne se ferment jamais comme les sockets.
5) Faire un try sur les exceptions sans rien mettre dans le catch, c'est un coup à ce que le programme plante sans qu'on ne le sache jamais puisqu'on aura rien affiché !

try
{
    JFileChooser chooser = new JFileChooser();    
    if (chooser.showSaveDialog(null) == JFileChooser.APPROVE_OPTION)   
    {
        FileWriter writer = new FileWriter(chooser.getSelectedFile());
        writer.append("Coucou").append(System.lineSeparator());
        writer.close();   
     }   
}
catch (Throwable t)
{
    t.printStackTrace();
}
0
Effectivement les améliorations que tu propose sont mieux, mais mon compilo ne trouve pas la méthode lineSeparator() dans system... Une idée de pourquoi ?
0
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019
19 nov. 2012 à 12:52
System.lineSeparator() est une nouvelle méthode de Java 7, pour les versions précédentes il faudrait plutôt utiliser System.getProperty("line.separator")
0