1

我继承了一些 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();
}

据我所知,这两种方法的作用完全相同。奇怪的是,这些方法在课堂上是紧挨着的,这意味着无论谁把它们放在那里都知道它们在做什么。

这些方法本质上是一样的吗?我可以摆脱其中之一吗?(或者可能两者兼而有之,考虑一下)。

4

2 回答 2

1

在我看来,getOutputStream如果文件不存在会抛出异常。

只有没有人依赖这种行为,你才能摆脱它。

在这种情况下,通常的重构是添加一个布尔参数,createOutputStream让它知道如果文件不存在,是否应该创建该文件。

于 2009-08-28T14:20:57.303 回答
0

FileConnector 仅在可选包中提供,因此您不能依赖它的存在。

于 2009-08-27T12:11:26.387 回答