Вот чисто мой мейн метод этой задачи. И проблема в том, что он работает. НО! Работает он ровно до того момента, пока я не уберу проверку If (stream.available() >0)
public static void main(String[] args) {
try {
String path = "C:\\Users\\ad_in\\Desktop\\test2.txt";
Solution solution = new Solution("C:\\Users\\ad_in\\Desktop\\test.txt");
solution.writeObject("Some Information For Testing My Task");
ObjectOutputStream objectOutputStream = new ObjectOutputStream(new FileOutputStream(path));
objectOutputStream.close();
ObjectInputStream objectInputStream = new ObjectInputStream(new FileInputStream(path));
if (objectInputStream.available() > 0) {
solution = (Solution) objectInputStream.readObject();
}
objectInputStream.close();
solution.writeObject("Another new Information");
} catch (Exception e) {
e.printStackTrace();
}
}
Что особенно интересно ,так это то, что он спокойно заходит в это поле, когда if установлен. Но не может адекватно отработать его, когда if нет. !????
И как только проверка убирается, выдаётся следующая ошибка: java.io.EOFException
at java.io.ObjectInputStream$BlockDataInputStream.peekByte(ObjectInputStream.java:3039)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1598)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:483)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:441)
at com.javarush.task.task20.task2022.Solution.main(Solution.java:52)
Чё самое интересное, валидатору этот факт не помешал принять задачу.