2015-01-05 173 views
0

我想將一些整數和數組存儲到一個文件中,這樣我可以讓我的程序讀取並使用它們,但我不知道如何執行此操作。 我知道,我可以用掃描儀讀取單個整數,並將它們保存到迭代一個數組,但我想有一個像將整數和數組存儲在一個文件中並讀取它們

Number=5; 
Array={1, 2, 3, 4, 5}; 

一個文件,我的程序應該分配號碼,將自動變量,如

int Number = file.get(Number); 
int[] Array = file.get(Array); 

有沒有辦法做到這一點?

預先感謝您

+1

有很多方法可以做到這一點,這取決於數據如何存儲在文件中:二進制數據,純文本,XML或JSON等特定格式... –

+0

將其存儲爲更具結構化的格式並使用圖書館。 – kittylyst

+0

無論您使用什麼,您都必須自己編寫函數'file.get'的一部分。最接近「自動」的東西可能是JSON或一些二進制編碼。 – merlin2011

回答

0

做,這是通過使用序列的最簡單方法。要在文件中存儲您的信息,請使用FileOutputStreamObjectOutputStream(從java.io包中),就像這樣:

File saveFile = new File("filename.sav"); 
try { 
    FileOutputStream fileOut = new FileOutputStream(saveFile); 
    try (ObjectOutputStream objOut = new ObjectOutputStream(fileOut)) { 
     objOut.writeObject(number); // you should use lower case for variable names 
     objOut.writeObject(array); 
    } 
} catch (IOException e) { 
} 

這將存儲在一個名爲「filename.sav」二進制文件的信息。爲了充分利用該文件的整數數組,使用FileInputStreamObjectInputStream和投檢索對象的順序所需的類型,他們分別存放在:

try { 
    FileInputStream fileIn = new FileInputStream("filename.sav"); 
    try (ObjectInputStream objIn = new ObjectInputStream(fileIn)) { 
     int number = (int) objIn.readObject(); 
     int[] array = (int[]) objIn.readObject(); 
    } 
} catch (IOException | ClassNotFoundException e) { 
} 

這也適用於任何可序列化對象的工作(一實現Serializable的對象)。

+0

謝謝,應該這樣做。有沒有辦法用手寫文件? – vicco

+0

「手工」,你的意思是將信息存儲到純文本文件? –

+0

是的,我想在一個編輯器中寫下來,我的程序不寫這個文件。 – vicco

相關問題