Modi alternativi per aprire un file per la scrittura su J2ME?
Domanda
Ho ereditato un po 'di codice di J2ME in cui una singola classe ha i seguenti due metodi in esso:
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();
}
Per quanto posso dire, questi due metodi fanno esattamente la stessa cosa. Stranamente, i metodi sono proprio accanto all'altro nella classe, il che implica che chi li ha messi lì sapevano quello che stavano facendo.
Sono questi metodi essenzialmente la stessa? Posso liberarmi di uno di loro? (O forse entrambi, a pensarci).
Soluzione
Mi sembra che getOutputStream
un'eccezione se il file non esiste.
Si può solo sbarazzarsi di esso se nessuno si basa su quel comportamento.
Il refactoring al solito in quella situazione sarebbe quello di avere un parametro booleano aggiunto alla createOutputStream
per fargli sapere se deve creare il file se non esiste già.
Altri suggerimenti
FileConnector è disponibile in un pacchetto opzionale solo, in modo da non può contare sulla sua esistenza.