Для чтения символа из BufferedReader используйте метод read(). Версия read(), которую мы будем применять, такова:
int read() throws IOException
При каждом вызове read() читает символ из входного потока и возвращает его в виде целочисленного значения. Когда read() сталкивается с концом потока, то возвращает -1. Как вы видите, он может выбрасывать исключение ввода/вывода (1/O-исключение — IOException).
Следующая программа демонстрирует read(), читая символы с консоли, пока пользователь не напечатает "q":
Программа 71. Чтение символов с консоли
// Файл BRRead.java
// Использует BufferedReader для чтения символов с консоли.
import java.io.*;
class BRRead {
public static void main(String args[]) throws IOException
{
char c;
BufferedReader br = new
BufferedReader(new InputStreamReader(System.in));
System.out.println("Введите символы, 'q! - для завершения.");
// Чтение символов
do {
c = (char) br.read();
System.out.println(c);
}
while(c != 'q');
}
}
Результат выполнения этого примера:
Введите символы, 'q' - для завершения.
123abcq
a
b
c
q
Чтение набранных на клавиатуре символов начинается только после нажатия клавиши <Enter> так как System.in по умолчанию — буферизированный поток и водимые символы сначала помещаются в буфер, а затем уже извлекаются из буфера.