2013-07-09 38 views
0

在我的程序的前面的代碼中,我使用ObjectOutputStream和FileOutPutStream保存了一個ArrayList(包含一個名爲location的自定義類的對象,如您在代碼中所見)。但是,當試圖從文件中檢索對象時,使用ObjectInputStream,我得到一個錯誤,說我有一個未處理的異常(ClassNotFoundException)。使用ObjectInputStream從文件讀取對象? ClassNotFoundException

這是我用來獲取ArrayList中出該文件的代碼:

String file = "file"; 

ObjectInputStream input = new ObjectInputStream(new FileInputStream("file")); 



ArrayList<location> arrayList = new ArrayList<location>(); 
arrayList = (ArrayList) input.readObject(); 

的錯誤是在這裏我所說的.readObject()方法就行了。任何幫助將不勝感激,因爲我是Java的新手。謝謝!

+1

你是否在運行時得到一個異常,有堆棧跟蹤和一切,或者你在你的IDE中出現紅色的小波?如果是第二件事,那麼您需要使用try-catch塊來處理異常。 – user2357112

+0

它不在運行時,它在我編譯時在IDE中顯示。 @ user2357112 –

回答

0

這意味着您發送的類無法在您的應用程序中找到。您必須將其添加到應用程序的類路徑中,或者只發送應用程序具有的類。在你的情況下,丟失的類將在ArrayList中,因爲ArrayList將始終存在。

沒有什麼神祕的事情發生,錯誤意味着它所說的。

如果例外告訴你哪個類丟失了,它會更有用。我認爲Java 7現在可以做到這一點。

+2

彼得是對的。我會尋找AWT課程。 java.awt.Point和Rect在編寫庫或嘗試使用android庫時經常讓我頻繁使用。 –

+0

我剛剛意識到我正在使用的類是在與我正在使用它相同的包中定義的。那麼是否需要添加類路徑? @Peter –

+0

你需要確保它在JAR文件中。 – EJP

相關問題