Как долго блокирует System.in.read() в Java
System.in
это InputStream
на Яве.
API для read()
метод говорит
Этот метод блокируется до тех пор, пока не будут доступны входные данные, не обнаружен конец потока или не сгенерировано исключение.
try {
int inByte = System.in.read();
System.out.println("Typed char: " + (char) inByte);
} catch (Exception e) {
e.printStackTrace();
}
Итак, теперь я пытаюсь запустить эту программу выше, и она позволяет мне вводить много символов и прекращает блокировку, только если я нажимаю Enter на моей клавиатуре.
Не хватает доступных данных (как пишет API), когда я нажимаю только один ключ (то есть один байт, например A
в UTF-8
) а программа может продолжиться потом?
read(byte[])
ведет себя так же.. Он блокируется, пока пользователь не нажмет Enter.