Альтернативные способы открыть файл для записи на J2ME?

StackOverflow https://stackoverflow.com/questions/1340644

  •  20-09-2019
  •  | 
  •  

Вопрос

Я унаследовал немного кода 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();
}

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

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

Это было полезно?

Решение

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

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

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

Другие советы

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top