Программа ниже печатает каждый символ, записанный на стандартном, но только после того, как была написана новая строка (по крайней мере, в моей системе!).
public class Test {
public static void main(String[] args) throws java.io.IOException {
int c;
while ((c = System.in.read()) != -1)
System.out.print((char) c);
}
}
Это позволяет людям писать такие вещи, как "Нажать любую клавишу, чтобы продолжить", и заставляет что-то вроде "Нажмите enter для продолжения".
- В чем причина этого?
- Является ли это ограничением Java?
- Является ли это поведение зависящим от системы (я на Ubuntu)? Как это работает на Mac? Windows?
- Зависит ли он от конкретного терминала, в котором я запускаю приложение? (Для меня это ведет себя как в Eclipse и в gnome-терминале)
- Есть ли обходной путь?