我继承了一些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();
}
据我所知,这两种方法完全相同。奇怪的是,这些方法在课堂上彼此相邻,暗示无论谁把它们放在那里都知道他们在做什么。
这些方法基本相同吗?我可以摆脱其中一个吗? (或者可能两者都在考虑)。
答案 0 :(得分:1)
在我看来,如果文件不存在,getOutputStream
将抛出异常。
如果没有人依赖这种行为,你只能摆脱它。
在这种情况下通常的重构是为createOutputStream
添加一个布尔参数,让它知道是否应该创建文件(如果文件尚不存在)。
答案 1 :(得分:0)
FileConnector仅在optional package中可用,因此您无法依赖它。