Formas alternativas para abrir un archivo para escribir en J2ME?
Pregunta
He heredado un poco de código J2ME donde una sola clase tiene los dos métodos siguientes en él:
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();
}
Por lo que yo puedo decir, estos dos métodos hacen exactamente lo mismo. Curiosamente, los métodos son uno al lado del otro en la clase, lo que implica que quien los puso allí sabía lo que estaban haciendo.
Son estos métodos esencialmente el mismo? ¿Puedo deshacerme de uno de ellos? (O probablemente ambas cosas, de pensar en ello).
Solución
Me parece que getOutputStream
será una excepción si no existe el archivo.
Sólo puede deshacerse de él si nadie se basa en que el comportamiento.
La refactorización habitual en esa situación sería tener un parámetro booleano añadido a createOutputStream
para hacerle saber si se debe crear el archivo si no existe ya.
Otros consejos
FileConnector está disponible en una paquete opcional solamente , por lo que no se puede confiar en su existencia.