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();
   }
}


Подскажите пожалуйста как реализовать этот адаптер, и объясните суть такой реализации, потому что не пойму для чего это нужно. Подскажите как это использовать.
  • Вопрос задан
  • 200 просмотров
Решения вопроса 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();
        }
    }
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
22 нояб. 2024, в 22:26
3500 руб./за проект
22 нояб. 2024, в 21:47
3000 руб./за проект
22 нояб. 2024, в 21:44
50000 руб./за проект