Реализация итератора по данным из URL
От: mbait  
Дата: 06.06.18 05:48
Оценка:
Предположим, что следующий код загружает коллекцию однородных объектов в JSON или XML:

Parser parser = new Parser(new URL("https://example.com/api/endpoint").openStream());


Для каждого объекта из коллекции выполняется какая-то логика, которая может занимать до минуты. При этом парсер потоковый. Интерфейс всего процесса загрузки и декодирования оборачивается в java.util.Iterator, и код выполнения логики, соответственно, будет использовать методы hasNext() и next(). Что произойдёт, если сервер не дождавшись, пока данные будут полностью отправлены, закроект подключение?

Или проще говоря, URL::openStream возвращает InputStream, данные которого полностью считываются в память? Или же данные по сети передаются по времени пропорционально вызовам InputStream::read?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.