Главная » Java, Структуры данных и алгоритмы » Стандартный ввод и вывод Java

0

В язык Java встроено большое количество классов и методов ввода и вывода данных. Существуют классы создания графического пользовательского интерфейса, содержащие всплывающие окна и вертикальные меню, а также методы отображения и ввода текста и цифр. Java располагает методами работы с графическими объектами, картинками, звуками, Web-страницами и опциями мыши (такими как кнопки, указатель и перемещение). Более того, многие из указанных методов ввода и вывода информации могут использоваться как в самостоятельных программах, так и в апплетах. К сожалению, авторы не имеют возможности углубиться в подробности применения этих методов для создания сложных пользовательских графических интерфейсов. В этом разделе описывается только стандартный ввод и вывод информации в Java.

Стандартный ввод и вывод информации в Java осуществляется через консоль. В зависимости от среды Java окно консоли может быть либо специальным всплывающим окном, предназначенным для отображения и ввода текста, либо окном задания команд операционной системы (окна программ-оболочек, окна DOS или терминальные окна).

Методы вывода

В Java встроен статический объект System.out, с помощью которого осуществляется вывод информации на «стандартное устройство вывода», то есть консоль. В некоторых операционных системах, например, Unix/Linux, существует возможность переназначения стандартного выходного потока в файл или в качестве входного потока в другие программы. Однако по умолчанию информация в Java выводится на консоль. Объект System.out является экземпляром класса Java.io.PrintStream. Данный класс определяет методы, осуществляющие буферизованный вывод, при котором элементы накапливаются во временной области памяти, называемой буфером, освобождаемой по мере готовности консоли к отображению. Этот класс также содержит методы, позволяющие осуществлять стандартный вывод (<base_type> используется для обозначения переменной любого базового типа):

•    print(Object о): выводит объект о с помощью метода toString;

•    print(String, s): выводит строку s\

•    print(<base_type> b): выводит значение переменной базового типа Ъ\

•          println(String, $): выводит строку s, после которой указан символ перевода строки (и переводит курсор в начало следующей строки);

•    flush(): выводит содержимое буфера.

Рассмотрим, например, следующий фрагмент кода:

System.out.printfJava values:"); System.out print(3.1415); System.out print(\ ‘); System.out.print(15); System.out.println(" (double, char, int).")

После его выполнения следующий выходной поток Java values. 3 1415,15 (double, char, int) отображается на консоли. Методы ввода

Наряду с объектом, выполняющим вывод информации в окно Java-консоли, существует также специальный объект под названием System.in, используемый для ввода информации с консоли. Технически ввод информации осуществляется со «стандартного устройства Ввода», то есть клавиатуры, принимая набираемые на клавишах Java-консоли символы. Объект System.in является экземпляром класса java.io.InputStream, который может обрабатывать одновременно только один символ. Данная форма ввода примитивна и посему неудобна, однако может быть использована для описания другого объекта ввода, который осуществляет поточный и буферизованный ввод, используя возможности классов java.io.BufferedReader и java.io.InputStreamReader. Например, можно применить следующий шаблон:

java.io BufFeredReader stndin; // стандартный ввод (буферизованный) stndin=new java.io.BufferedReader(new Java.io.lnputStreamReader(System in)),

Класс java.io.BufferedReader определяет следующие методы:

•          int read(): возвращает один символ из исходного потока. Если поток закончился, возвращается значение —1. Этот метод выводит сообщение «java.io.IOExeption», если произошла ошибка ввода;

•          String readLine(): возвращает строку текста, то есть строку символов, заканчивающуюся символом перевода строки. Символ новой строки обрабатывается, но не включается в возвращаемую строку. Если исходный поток закончился, метод возвращает null. Этот метод выводит сообщение «java.io.IOExeption», если произошла ошибка ввода.

Рассмотрим, например, следующий фрагмент кода, в котором встречаются как входной, так и выходной потоки.

java.io.BufferedReader stndin, // Стандартный ввод (буферизованный) String line,    // Строка вводимого текста

double sum, d = 0.0; int i = 0;

stndin=new Java, io Buffered Reader(new java io.lnputStreamReader(System in)),

System.out pnnt("Input a double:");

System out.flushQ;

if ((line = stndin.readLineQ) ‘= null)

d = Double.valueOf(line) doubleValue(); System out.printflnput an int:"); System out flushO; if ((line = stndin readLineQ) != null) i = Integer valueOf(line).intValue(); sum = d + i;

System out.printlnfTheir sum is" + sum + "."),

После выполнения этого фрагмента кода имеем следующую комбинацию результатов ввода и вывода:

Input a double* 6.1078 Input an int. 209 Their sum is 215.1078

Источник: Гудрич М.Т. Г93 Структуры данных и алгоритмы в Java / М.Т. Гудрич, Р. Тамассия; Пер. с англ. A.M. Чернухо. — Мн.: Новое знание, 2003. — 671 е.: ил.

По теме:

  • Комментарии