我有以下類,它執行一些計算來填充它的靜態數組。使用java序列化保存/加載對象數組
public class Amount implements Serializable{
private static final long serialVersionUID = 8141477444408242243L;
public static Amount values1[][] = new Amount[10][30];
public static Amount values2[][] = new Amount[10][30];
public static Amount values3[][] = new Amount[10][30];
double highestValue;
double highestAmount;
double lowestAmount;
double lowestValue;
...
}
由於計算需要20分鐘左右,我期待存儲在文件中的數組和裝載值在程序啓動時。我試圖用Java序列化方法,並具有以下功能
public static void loadFile(Amount[][] arr, String filename){
try {
FileInputStream fis = new FileInputStream(filename);
ObjectInputStream in = new ObjectInputStream(fis);
arr = (Amount[][])in.readObject();
in.close();
}
catch (Exception e) {
System.out.println(e);
}
}
public static void saveFile(Amount[][] arr, String filename){
try {
FileOutputStream fos = new FileOutputStream(filename);
ObjectOutputStream out = new ObjectOutputStream(fos);
out.writeObject(arr);
out.flush();
out.close();
}
catch (IOException e) {
System.out.println(e);
}
}
我這樣調用saveFile(values1, "valueOneSaveFile");
和loadFile(values1, "valueOneSaveFile");
我已經運行一次程序,保存所有陣列的各種文件。這些文件已經被創建並且看起來是正確的大小。當我改變我的程序來調用loadFile函數時,數組似乎不能正確初始化。試圖從陣列讀取的值(這似乎是空的後負荷)
你有沒有考慮過使用嵌入式數據庫,而不是去文件? :-) – corsiKa