2009-08-27 53 views
1

我繼承了一下J2ME代碼,其中一個類中有以下兩種方法:打開文件以在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(); 
} 

據我所知,這兩種方法做同樣的事情。奇怪的是,這些方法在課堂上彼此相鄰,意味着誰把他們放在那裏知道他們在做什麼。

這些方法是否基本相同?我可以擺脫其中一個嗎? (或者可能兩者都在考慮它)。

回答

1

在我看來,getOutputStream會拋出一個異常,如果該文件不存在。

如果沒有人依賴這種行爲,你只能擺脫它。

在這種情況下,通常的重構將是一個添加的布爾參數createOutputStream讓它知道它是否應該創建文件,如果它不存在。

+0

+1使用敏捷方法很好 – 2009-09-04 11:41:25

0

FileConnector僅適用於optional package,因此您不能依賴其存在。

+0

我應該說filePath始終是一個「file://」url。 – izb 2009-08-27 12:20:06