Как избежать EOFException (ObjectInputStream) при чтении из файла?

private synchronized Map<String, WeatherInfo> restoredCacheFromFile() {
    try {
        ObjectInputStream inputStream = new ObjectInputStream(new FileInputStream("cache.ser"));
        cache = (HashMap<String, WeatherInfo>) inputStream.readObject();
        inputStream.close();
    } catch (IOException | ClassNotFoundException e) {
        e.printStackTrace();
    }
    return cache;
}

Когда оборачиваю внутрь while с условием inputStream.readLine() != null, исключения уже на терминале не выводятся, но cache уже хранит только одно значение, перезаписывает.

Совсем запутался. Первый вариант кода может с исключениями работать, но хочется без них.

    while (inputStream.readLine() != null) {
       if (line.isEmpty()) {
          break;
       }
       cache = (HashMap<String, WeatherInfo>) inputStream.readObject();
       inputStream.close();
    }

Ответы (0 шт):