Альтернативные способы открыть файл для записи на J2ME? - PullRequest
1 голос
/ 27 августа 2009

Я унаследовал немного кода J2ME, в котором один класс имеет следующие два метода:

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();
}

Насколько я могу судить, эти два метода делают одно и то же. Как ни странно, методы находятся рядом друг с другом в классе, подразумевая, что тот, кто поместил их туда, знал, что они делают.

Являются ли эти методы по сути одинаковыми? Могу ли я избавиться от одного из них? (Или, возможно, оба думают об этом).

Ответы [ 2 ]

1 голос
/ 28 августа 2009

Мне кажется, что getOutputStream сгенерирует исключение, если файл не существует.

Вы можете избавиться от него, только если никто не полагается на такое поведение.

Обычный рефакторинг в этой ситуации заключается в добавлении логического параметра к createOutputStream, чтобы он знал, должен ли он создавать файл, если он еще не существует.

0 голосов
/ 27 августа 2009

FileConnector доступен только в дополнительном пакете , поэтому вы не можете полагаться на его существование.

...