BufferedOutputStream et les try/catch
Bonjour,
Je n'arrive pas a resoudre mon probleme (qui n'en aurait pas ete un si je l'avais ecrit sous C). Je vais essayer de le decrire precisement.
Dans un programme, si Je veux ouvrir un fichier pour y ecrire, j'utilise un truc du genre
BufferedOutputStream buff = new BufferedOutputStream(new FileOutputStream(nom_fichier,true));
puis je fais un buff.write et buff.close, jusque la rien de sorcier.
Maintenant, si mon programme doit faire appel a 10 methodes qui, chacune, ecrivent dans le meme fichier, je devrais donc copier coller ce code dans toutes les 10 methodes... Lourdingue.
Donc je me disais, est-ce que, comme en C, je pourrai faire une classe a part entiere, que je vais appeler genre "Fichier". La classe aurait 3 methodes publiques: ouverture du stream, ecriture du stream, fermeture du stream.
Comme ca, dans mon main, j'appellerai une seule fois Fichier.ouverture(...), puis j'appelle mes 10 methodes qui vont successivement invoquer Fichier.ecriture(...), puis a la fin, de retour dans mon main, je fais un Fichier.fermeture(). Voila pour l'idee. Maintenant je bloque completement sur l'implementation.
Pour Fichier.ouverture: je passe en parametre le nom du fichier a ouvrir et il me renvoie un type BufferedOutputStream, logique. J'ai ca:
Code:
1 2 3 4 5 6 7
| public class Fichier {
public BufferedOutputStream File_Append(String nom_fic) {
BufferedOutputStream buff = new BufferedOutputStream(new FileOutputStream(nom_fic,true));
return buff;
}
} |
Sauf que Java refuse car il me dit que FileOutputStream peut generer des exceptions donc je dois obligatoirement mettre un try/catch. Soit
Code:
1 2 3 4 5 6 7 8 9 10 11
|
public BufferedOutputStream File_Append(String nom_fic) {
try {
BufferedOutputStream buff = new BufferedOutputStream(new FileOutputStream(nom_fic,true));
return buff;
} catch(FileNotFoundException ex) {
System.out.println("Exception : " + ex);
}
return buff;
}
} |
Oui mais voila, la variable buff etant dans un bloc try/catch, le dernier return buff hors du bloc try refuse de compiler puisqu'il ne connait pas cette variable... La question a 1 million: comment je contourne ca? Si tant est que c'est faisable.. Sinon bah ce sera du copier coller a la con sur mes 10 methodes. Merci Java...
Merci d'avance.