Как прочитать Line с эхо в Java? - PullRequest
1 голос
/ 01 сентября 2011

Я хотел бы использовать BufferedReader с типом readLine () (или аналогичным), который может возвращать эхо-сигнал при каждом нажатии клавиши.

Это для удаленного терминала. Другой способ спросить это, как реализована консоль в Java.

Это то, что пришло в голову, но слишком уродливо. Есть какая-нибудь известная библиотека, которая реализует что-то подобное?

while(condition) {

    nByteRead = in.read(buffer);

    if (nByteRead != -1) {

        //  ECHO
        out.write(buffer, 0, bytes_read);                      

        //  read bytes till NEW_LINE...                            
        //  etc...!                            
    }                           
}                    

Конечно, я мог бы инкапсулировать это поведение в каком-то потоке и продолжить с библиотекой для этого, мне просто интересно, есть ли уже изобретенное колесо.

Спасибо за любую подсказку!

Ответы [ 2 ]

1 голос
/ 01 сентября 2011
1 голос
/ 01 сентября 2011

Большинство терминалов, включая терминалы по умолчанию в Ubuntu и Windows (я считаю), не будут передавать символы в JVM, пока пользователь не нажмет return. (То есть, он буферизуется на полной линии на более низком уровне в системе.)

Если вам нужно читать по одному символу за раз из терминала, вам придется использовать системную библиотеку более низкого уровня.

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

(дисклеймер, я не совсем уверен, что правильно понял ваш вопрос.)

...