D'autres façons d'ouvrir un fichier pour écrire sur J2ME?
Question
J'ai hérité un peu de code J2ME où une seule classe a deux méthodes suivantes en elle:
public DataOutputStream getOutputStream(String filePath) throws IOException
{
return Connector.openDataOutputStream(filePath);
}
public DataOutputStream createOutputStream(String filePath) throws IOException
{
FileConnection fc = (FileConnection)Connector.open(filePath);
if(fc.exists())
return fc.openDataOutputStream();
else
fc.create();
return fc.openDataOutputStream();
}
Pour autant que je peux dire, ces deux méthodes font exactement la même chose. Bizarrement, les méthodes sont juste à côté de l'autre dans la classe, ce qui implique que celui qui les a mis là savait ce qu'ils faisaient.
sont ces méthodes essentiellement les mêmes? Puis-je me débarrasser d'un d'entre eux? (Ou probablement les deux, y penser).
La solution
Il me semble que getOutputStream
lancera une exception si le fichier n'existe pas.
Vous ne pouvez vous en débarrasser si personne ne repose sur ce comportement.
La refactorisation habituelle dans cette situation serait d'avoir un paramètre booléen ajouté à createOutputStream
pour le faire savoir si elle doit créer le fichier si elle n'existe pas.
Autres conseils
FileConnector est disponible dans un package optionnel seulement, vous ne peut pas compter sur son existence.