Иллюстрированный самоучитель по Java



              

Консольный ввод/вывод - часть 3


PrintWriter pw = new PrintWriter(

new OutputstreamWriter(System.out, "Cp866"), true); 

String s = "Это строка с русским текстом"; 

System.out.println("System.out puts: " + s); 

pw.println("PrintWriter puts: " + s) ; 

int с = 0;

pw.println("Посимвольный ввод:"); 

while((с = br.read()) != -1)

pw.println((char)c); 

pw.println("Построчный ввод:"); 

do{

s = br.readLine(); 

pw.println(s); 

}while(!s.equals("q")); 

}catch(Exception e){

System.out.println(e); 

}

Поясним рис. 18.3. Первая строка выводится потоком system.out. Как видите, кириллица выводится неправильно. Следующая строка предварительно преобразована в поток байтов, записанных в кодировке СР866.

Затем, после текста "Посимвольный ввод:" с консоли вводятся символы "Россия" и нажимается клавиша <Enter>. Каждый вводимый символ отображается на экране — операционная система работает в режиме так называемого "эха". Фактический ввод с консоли начинается только после нажатия клавиши <Enter>, потому что клавиатурный ввод буферизуется операционной системой. Символы сразу после ввода отображаются по одному на строке. Обратите внимание на две пустые строки после буквы я. Это выведены символы '\п' и '\г', которые попали во входной поток при нажатии клавиши <Enter>. У них нет никакого графического начертания (glyph).

Потом нажата комбинация клавиш <Ctrl>+<Z>. Она отображается на консоль как "^Z" и означает окончание клавиатурного ввода, завершая цикл ввода символов. Коды этих клавиш уже не попадают во входной поток.

Далее, после текста "Построчный ввод:" с клавиатуры набирается строка "Это строка" и, вслед за нажатием клавиши <Enter>, заносится в строку s. Затем строка s выводится обратно на консоль.

Для окончания работы набираем q и нажимаем клавишу <Enter>.

Рис. 18.3.

Консольный  ввод/вывод




Содержание  Назад  Вперед