У меня есть следующий класс, который выполняет некоторые вычисления для заполнения своих статических массивов.
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, массивы не отображаются для правильной инициализации.Я получаю исключения нулевого указателя при попытке прочитать значение из массива (который после загрузки выглядит пустым)