Прошу объяснить.
public void load(InputStream inputStream) throws Exception {
            //implement this method - реализуйте этот метод
            BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
           ObjectInputStream ois = new ObjectInputStream(inputStream);
            this.name = reader.readLine();
            if (reader.readLine().equals("yes")){
                int count = Integer.parseInt( reader.readLine());
                for (int i = 0; i <count ; i++) {
                    this.assets.add(reader.readLine());
                }
            }
            reader.close();
            ois.close();
        }
Так не может считать строку, если удалить ois, то все работает. Чем оно мешает? Я же его нигде не использую, выскакивает исключение streamcorruptedexception И что такое hashCode, зачем он тут переопределен? Что он делает?