écrire un fichier taxte prend comme nom la date systeme

Fermé
zaineb SRt Messages postés 3 Date d'inscription dimanche 11 novembre 2012 Statut Membre Dernière intervention 26 décembre 2012 - 11 nov. 2012 à 10:28
zaineb SRt Messages postés 3 Date d'inscription dimanche 11 novembre 2012 Statut Membre Dernière intervention 26 décembre 2012 - 11 nov. 2012 à 16:34
Bonjour,



Bonjour à tous,

Je suis nouvelle sur ce site, je débute en programmation JAVA et je souhaiterais avoir votre aide concernant un problème, le voici:
écrire un fichier texte prend comme nom la date système
j'ai essaié :

import java.io.BufferedWriter;
import java.io.FileWriter;
import java.text.SimpleDateFormat;//importation de l'API de format simple de date
public class WriteFileDateSystm {

public static void main( String []args){

try{
java.util.Date date=new java.util.Date();//déclaration du date
java.text.SimpleDateFormat simple= new SimpleDateFormat("dd-MM-yy hh:mm a");/*préciser la format du date en indiquant AM/PM*/

FileWriter FW = new FileWriter("c://simple.format(date).txt");
BufferedWriter BW = new BufferedWriter(FW);
BW.write("la date");
BW.close();

}
catch (Exception e) {
System.err.println("erreur" + e.getMessage());
}

}


}

mais le problème que la résulta est que le fichier est nommé "simple.format(date)"
A voir également:

1 réponse

KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
11 nov. 2012 à 13:53
En même temps c'est ce que tu lui as demandé en faisant :
new FileWriter("c://simple.format(date).txt");

Quand tu tapes du texte entre guillemets ce n'est plus du code, il faudrait plutôt écrire :
new FileWriter("c://"+simple.format(date)+".txt");

Mais ATTENTION, tu a mis ta date au format "dd-MM-yy hh:mm a", or il est rigoureusement interdit d'utiliser le caractère ':' dans un nom de fichier Windows, il est réservé aux lecteurs de disque (comme pour ton "C:")

Au passage, soit tu mets "C:\\" (notation Windows avec l'antislash échappé), soit tu mets "C:/" (notation Java), mais il n'y a pas de raison de mettre "C://"

Enfin, vu ce que tu fais, ton BufferedWriter est largement superflu, de même que ton try/catch, ici tu peux laisser l'exception s'échapper, ça ne changera pas grand chose.

Remarque : le SimpleDateFormat peut aussi être enlevé en le remplaçant par un String.format (le format de la date correspond alors à celui des printf)

public static void main(String[] args) throws IOException
{
    FileWriter writer = new FileWriter(String.format("C:\\%1$td-%1$tm-%1$ty %1$tI;%1$tM %1$Tp.txt", new Date()));
    writer.write("la date");
    writer.close();
}
0
zaineb SRt Messages postés 3 Date d'inscription dimanche 11 novembre 2012 Statut Membre Dernière intervention 26 décembre 2012
11 nov. 2012 à 16:34
merci bien pour vos conseil :)
0