2013-04-14 139 views
0

是否存在使用ObjectInputStream從文件中讀取對象的正確方法。我見過的例子似乎依賴於那個例外被抓住來結束閱讀。雖然它可能有效,但它似乎並不是一個乾淨的解決方案,因爲除非代碼中出現錯誤,否則異常不應該真正發生。從文件中讀取多個對象

Example 1

+0

如果您知道文件中的對象數量,然後編寫使用該信息的代碼。如果文件的對象數量未知,那麼'Exception'方法是正確的。您可能會將這些信息寫入文件的第一個對象中...... –

+0

@ bmorris591如果第一個對象不在那裏,或者計數錯誤,例如如果寫入過程沒有執行,您仍然必須處理EOFException,無法成功地寫出它想要的所有對象。 – EJP

+0

@EJP是的,當然,但是這將是一個特例。我認爲OP反對使用'Exception'作爲控制流程語句。 –

回答

0

EOFExceptionreadObject()方法拋出,指示流的末尾。你必須捕捉它來檢測流結束。 QED。別管這個例外警察。

+0

很無聊,但可悲的是我猜的唯一方法:/ – starcorn

+0

我無法理解這個評論。關於捕獲異常的「無聊」是什麼? – EJP

+0

捕捉異常並不乏味。我指的是,當文件到達文件結尾時,我必須捕捉異常。 – starcorn