Наличие двух классов игрока и игры. Реализация сериализации и fileio. Сериализация работает нормально. Невозможно получить максимальную длину массива объектов. Я хочу, чтобы объекты не присутствовали в массиве.Как инициализировать массив объектов после десериализации
class player {
private String username;
}
class game {
player array[] = new player[100];
int arraysize;
player player;
public void setArraySize(int arraySize) {
this.arraySize = arraySize;
}
public void readdata() { // reading from file starts
//ObjectInputStream input = null;
try {
ObjectInputStream input = new ObjectInputStream(new FileInputStream("myfile.txt"));
array = (NimPlayer[]) input.readObject();
} catch (Exception e) {
e.printStackTrace();
}
initializearraylength(array);
}// reading file ends
public void initializearraylength(NimPlayer[] temparray) {
int size = temparray.length;
setArraySize(size);
System.out.println(size); // output displays size 100
}
}
public display() {
for (int i = 0; i < arraysize; i++) {
System.out.println(array[i].getusername());
}
}
переменная ARRAYSIZE не initializing.I попробовал этот код и получение исключения нулевого указателя в readdata() FirstLine примерочных.
java.io.EOFException
at java.io.ObjectInputStream$PeekInputStream.readFully(Unknown Source)
at java.io.ObjectInputStream$BlockDataInputStream.readShort(Unknown Source)
at java.io.ObjectInputStream.readStreamHeader(Unknown Source)
at java.io.ObjectInputStream.<init>(Unknown Source)
at game.readdata(game.java:507)
Пожалуйста, пост StackTrace за исключение –