Java: deprecated problèmes...

velociraptor -  
 Utilisateur anonyme -
Bonsoir,

j'ai créer une fonction liredate qui transforme une String en date mais me renvois des dates différentes de celles prises en paramètre et me met en plus que mon programme est deprecated.

Pourriez vous m'éclairer sur la signification de deprecated ?
Pourriez vous m'aider à avoir une date correcte?

merci!

je vous joins le code de ma fonction:

public static Date lireDate(String chaine)
{
int j,m,a;
j = Integer.parseInt(chaine.substring(0,1));
m = Integer.parseInt(chaine.substring(3,4));
a = Integer.parseInt(chaine.substring(6,7));
return new Date(j,m,a);
}

Bonne soirée, alexandre
A voir également:

10 réponses

velociraptor
 
j'ai un autre problème qui n'a rien à voir:
pour lire une ligne d'un fichier texte, pas de problème, mais pour faire une lecture de ligne autant de fois qu'il y a de ligne dans le fichier... Je sais pas...

Encore merci pour toute votre aide!

alexandre
1
Utilisateur anonyme
 
Bonsoir,
voici un petit exemple:
...
FileInputStream in = null;
try {
in = new FileInputStream(monFichier);
}
catch(FileNotFoundException e) {
...
}
InputStreamReader isr = new InputStreamReader(in);
BufferedReader br = new BufferedReader(isr);
String line;
try {
while((line = br.readLine()) != null) {
.....
}
catch(IOException e) {
....
}
br.close();
....

a+
0
velociraptor > Utilisateur anonyme
 
re bonsoir,

la methode marche mais le problème toujours là: je ne lis qu'une seule phrase... (la dernière en l'occurance)

Je pense qu'il faut faire ça avec un for:
for(de la première ligne; à la dernière ligne; ligne d'après)

mais synthaxiquement parlant, je ne vois pas comment faire...

merci!

bonne soirée, alexandre
0
Lita > Utilisateur anonyme
 
Salut
Insères System.out.println(ligne); le code de philtrain et tu verras:

try {
while((line = br.readLine()) != null) {
System.out.println(line);
}
catch(IOException e) {
....
}

Tu peux manipuler le string line comme tu veux.
Tu peux toutefois penser à un objet linereader - je crois que c'est le nom - mais je connais que son existence.
0
zagor5 Messages postés 187 Statut Membre 32
 
Essai comme ça, pour lire un fichier :

        try{
        File inputFile = new File(path+"/FileIn.txt");
        
        //Create the input and output streams
        FileReader in = new FileReader(inputFile);
        
        //Read the file content character by character until its end.
        //and write it on the screen
        int c;
        while ((c = in.read()) != -1) {
            out.write(c);            
            //NB: you can also show it on screen to know what is happening: 
            //c is an ASCII coded int value, so it has to be typecasted in a character
            char cr = (char) c;
            System.out.print(cr);            
        }
        //Close the streams when the work is finished
        in.close();
}
catch(IOException e){}


Plus ça rate, plus on a de chances que ça marche.
0
Lita
 
d'abord chaine.substring(a,b) retourne une sous chaîne de chaine qui est de type String;
Integer.parseInt(String s) "transforme" le type String de s en type int. Bref, "5" devient 5;

PS: Tu mets seulement un caractère pour la date? ie tu travailles seulement les 9 premiers jours du mois? ;-)))
0
zagor5 Messages postés 187 Statut Membre 32
 
Si jamais le constructeur Date(int year, int month, int date) est Deprecated et est remplacé par Calendar.set(year + 1900, month, date).

Plus ça rate, plus on a de chances que ça marche.
0
velociraptor
 
Je me permet de vous donner le code:

public static void Affichage_RDV() throws IOException
{
System.out.println("\nVoila vos rendez-vous!\n");
InputStream ips=new FileInputStream(evenements);
InputStreamReader ipsr=new InputStreamReader(ips);
BufferedReader br=new BufferedReader(ipsr);
String ligne;
while((ligne = br.readLine()) != null) {

java.util.StringTokenizer tokenizer = new java.util.StringTokenizer(ligne=br.readLine(), "*");
date_ev = tokenizer.nextToken();
objet = tokenizer.nextToken();
System.out.println(date_ev+": "+objet+"\n");
}
br.close();
}

J'ai fais un System.out.prinln dans la boucle while ... mais je n'obtiens qu'une phrase...

merci pour toute votre aide...

alexandre
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Lita
 
//erreur: java.util.StringTokenizer tokenizer = new java.util.StringTokenizer(ligne=br.readLine(), "*");
java.util.StringTokenizer tokenizer = new java.util.StringTokenizer(ligne, "*");

Et puis à quoi ressemble ta ligne?
0
velociraptor
 
Re!

Franchement vous étes trop super!!! vous me trouver une erreur et paf, c'est bon! vous étes des magiciens du java! :-)

reste plus que mon problème de date mais j'ai trouvé un moyen alternatif...

une dernière chose et je ne vous embetes plus, avez vous une idée pour supprimer une ligne en particulier dans le fichier traité?

par exemple la ligne 3 sur un fichier qui fait 10 lignes...

encore merci! vous étes super!

alexandre
0
Lita
 
Pour supprimer une ligne, moyennant bidouille peut-être: pendant que tu lis ton fichier, tu reconstitues son contenu sans la ligne en question, puis tu le réécris écrasant le contenu du fichier.
Mais comme je te l'ai dit, bidouille. Qq1 aurait une meilleure idée.
;-)))
0
velociraptor
 
flute!

mon moyen detourné pour la date n'est pas si bon que ça car ça compile et après ça ne marche pas...

voilà ce que je pensais:

InputStream ips=new FileInputStream(contrainte);
InputStreamReader ipsr=new InputStreamReader(ips);
BufferedReader br=new BufferedReader(ipsr);
java.util.StringTokenizer tokenizer = new java.util.StringTokenizer(contrainte, "*");
ref1 = tokenizer.nextToken();
ref2 = tokenizer.nextToken();
objet = tokenizer.nextToken();
br.close();
java.util.StringTokenizer tokenizer_date1 = new java.util.StringTokenizer(ref1, "/");
String jour_d = tokenizer.nextToken();
String mois_d = tokenizer.nextToken();
String annee_d = tokenizer.nextToken();
Date date_comp1 = new Date(Integer.parseInt(jour_d),Integer.parseInt(mois_d),Integer.parseInt(annee_d));
java.util.StringTokenizer tokenizer_date2 = new java.util.StringTokenizer(ref2, "/");
String jour_f = tokenizer.nextToken();
String mois_f = tokenizer.nextToken();
String annee_f = tokenizer.nextToken();
Date date_comp2 = new Date(Integer.parseInt(jour_f),Integer.parseInt(mois_f),Integer.parseInt(annee_f));

Vous aviez l'air de savoir pour ma première syntaxe, vous pouvez m'aider (en sachant que ma string de départ est de la forme dd/mm/yy)

meric

alexandre
0
Lita
 
java.util.StringTokenizer tokenizer = new java.util.StringTokenizer(contrainte, "*");
Là, contrainte (File) n'est pas de type String, tu ne peux pas le mettre comme argument de StringTokenizer.
Il faut que tu piques les strings dans le contenu, d'où encore le code de philtrain: String line = br.readLine()
....StringTokenizer(line, "*");
;-))
0
Utilisateur anonyme
 
une autre méthode :
String line = br.readLine();
....
String [] datas = line.split("/", 3);
String jour = new String(datas[0]);
String mois = new String(datas[1]);
String annee = new String(datas[2]);
...
0