2012-06-17 75 views
0

現在我正在Java 1.6中創建通訊錄。現在我怎麼設置它是當你添加一個聯繫人,它被保存到一個數組。我沒有問題寫數組,但是當涉及到讀取它時,我不知道如何獲取之前保存的每個對象,並將其重新加載到數組中。反序列化對象並將其添加到數組

你知道嗎:addbook是我的文件,它是一個txt文件。 Array是我用來存儲對象的數組。我正在使用的排序是按名稱排序聯繫人的插入排序。如果我沒有介紹其他變量名稱和類似的東西,我可以澄清。

最後,爲了澄清,我的問題是問我如何讀取我保存到文件中的數組。 這是我讀代碼:

try { 
    FileInputStream in = new FileInputStream(addBook); 
    ObjectInputStream readIn = new ObjectInputStream(in); 

    array = readIn.readObject(); 
    readIn.close(); 


    Sorts.insertionSort(array); 

    model.removeAllElements(); 

    for (int i = array.length - 1; i > 0; i--) { 
     model.addElement(((Book) array[i]).getContact()); 
    } 
    comboBox.setModel(model); 

} catch (Exception e) { 
    e.printStackTrace(); 
} 
+1

這功課嗎?什麼不起作用?永遠不要在catch塊中至少放入'e.printStackTrace()'來吞下'Exception'。 – Jeffrey

+0

@Jeffery這是我的編程課的總結。不行的是這行:「test = readIn.readObject();」我得到的錯誤是「Multiple marker as this line」 – Spartan

+0

'array'的類型是什麼? 'Object','Object []'或'Book []'? – Jeffrey

回答

2

ObjectInputStream.readObject返回Object。如果沒有castarray = (Comparable[]) readIn.readObject(),您不能將Object分配給Comparable[]

+0

非常感謝Jeffrey,我非常感謝。 :)我會接受答案,一旦剩下的4分鐘就回答了。 – Spartan

+0

@斯巴達你是最受歡迎的。如果你想看看它,我還添加了一個鏈接到Java教程,該教程處理了投射。 – Jeffrey

相關問題