Как избежать 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();
}