Java

ssss -  
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   -
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 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Simplement :
Tu ouvres un fichier (FileWriter)
Tu lis les lignes sur la console (Scanner), et tu les mets dans le fichier.
0
Flog78
 
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 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
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
Flog78
 
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 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
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