типа boolean) и readLine() (вернет строку до знака переноса). Сделал конструкторы, поля. Не понимаю, как можно проверить наличие чего-либо в потоке не считав его перечисленными методами?
Вопрос непонятен. Ну так реализуй has next, в чем проблема?
а ты читал вдумчиво https://docs.oracle.com/javase/8/docs/api/java/io/Reader.html#ready-- ? Что-то еще не понятно?
не заблокирован для ввода это как я должен понять, если джаву только изучаю?
Гуглить все незнакомые слова, иначе никак
Tells whether this stream is ready to be read. Это тоже не понятно?
Тогда рано полез в эту задачу
Конечно не понятно. Готов ли поток к чтению, если он кончился? В доке я не нашел про это. А то что в returns непонятное про блокировку написано - игнорировать?
это курс такой, начинается с такой задачи.
написано же, что если возвращает истину - гарантировано можно читать
если можно читать это гарантия, что там что-то есть в потоке?
ты бы за это время уже успел код написать и проверить
этим и занимался, пока мне тут подсказали, что надо более внимательно прочитать документацию.
вся нужная информация есть в доке на read() и ready()
а вот как понять по методу, что он блокируется? Как-то не написали. Как протестировать этот момент?
что протестировать? по какому методу?
потока нет, а реди говорит можно читать, хотя рид считал и сказал, что конец потока. Как работает блокировка и зачем про неё написали так и не понял.
попробуй читать не из строки, а из консоли. Для StringReader ready вернет false только если поток был закрыт
Знать бы как организовать из консоли.
в любом случае ты был прав, тебе нужно если ready возвращает истину читать данные в буфер
мне надо было узнать есть ли что в потоке еще читать не используя метод read(). Это решится использованием ready()?
тебе придется читать его с помощью read()
если в конструкторе это сделать при создании объекта заполнив буфер - хороший вариант?
нет конечно. твой ридер должен сам по мере обращений к нему читать из базового ридера
Обсуждают сегодня