Задать вопрос
evgeniy8705
@evgeniy8705
Повелитель вселенной

Как реализовать адаптер InputStream к Iterator?

Дали задание, реализовать адаптер InputStream к Iterator, но я вообще понять не могу как это сделать.
Есть заготовка: (Нужно сделать конструктор и методы hasNext(), next())
public class ISToIteratorAdapter implements Iterator<Byte> {
   public ISToIteratorAdapter(InputStream is) {

   }

   @Override
   public void remove() {
       throw new UnsupportedOperationException();
   }
}


Подскажите пожалуйста как реализовать этот адаптер, и объясните суть такой реализации, потому что не пойму для чего это нужно. Подскажите как это использовать.
  • Вопрос задан
  • 202 просмотра
Подписаться 1 Оценить 2 комментария
Решения вопроса 1
Вероятно, как-то так?
public class ISToIteratorAdapter implements Iterator<Byte> {
        private final InputStream is;

        public ISToIteratorAdapter(InputStream is) {
            this.is = is;
        }

        @Override
        public boolean hasNext() {
            try {
                return is.available() > 0;
            } catch (IOException e) {
                return false;
            }
        }

        @Override
        public Byte next() {
            try {
                return Integer.valueOf(is.read()).byteValue();
            } catch (IOException e) {
                throw new NoSuchElementException();
            }
        }

        @Override
        public void remove() {
            throw new UnsupportedOperationException();
        }
    }
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы