Ввод/вывод данных в консольном режиме.

Для вывода данных в консольном режиме используется функция из пакета System. Этот пакет автоматически подключается любым компилятором Java.

ü System.out.print(объект)- выводит строку текста на экран, курсор остается на текущей строке;

ü System.out.println(объект) – выводит строку теста, курсор переходит на следующую строку;

С вводом информации с клавиатуры дело обстоит сложнее, поскольку системный пакет имеет только объект связанный с потоком ввода. Для того, чтобы ввести информацию с клавиатуры нам необходимо связать этот объект с объектом выполняющим чтение потока. Для этого необходимо подключить класс java.io.InputStreamReader, который обеспечивает преобразование данных потока в текстовую информацию. Вся работа с файлами и потоками ввода вывода в случае ошибки генерирует так называемые исключительные ситуации для обработки которых необходимо подключить класс обработчик исключений ввода-вывода java.io.IOException.

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

// Объявляем переменную в которой будет помещен

// результат ввода информации

String a;

// Определяем блок обработки исключительных ситуаций

try {

// Объявляем и создаем объект преобразования данных потока

// В текстовой вид

InputStreamReader is=new InputStreamReader(System.in);

// Объявляем текстовой буфер, длина которого соответствует

// максимальной длине строки.

char buf[] = new char[128];

// После этого в этот буфер производим чтение

is.read(buf);

// Этот буфер мы преобразовываем к строке

a=String.valueOf(buf);

// После этого закрываем блок обработки исключительных ситуаций.

}

// И описываем поведение системы в случае возникновения

// ошибки при чтении данных

catch (IO Exception e) {

System.out.println(e.getMessage());

a = null;

}

Для ввода числовой информации также необходимо сначала получить строку текста, после чего с помощью класса преобразователя преобразуется к значению числового типа. Для исполнения данной операции необходимо подключить библиотеку обработки ошибок преобразования чисел java.lang.NumbericFormatException и класс – оболочку типа данных, к которой необходимо преобразовать java.lang.Double;

 

// Объявляем переменную в которой будет помещен

// результат ввода информации

double a;

// Определяем блок обработки исключительных ситуаций

try{

// Объявляем и создаем объект преобразования данных потока

// В текстовой вид

InputStreamReader is = new InputStreamReader(System.in);

// Объявляем текстовой буфер, длина которого соответствует

// максимальной длине строки.

char buf[] = new char[128];

// После этого в этот буфер производим чтение

is.read (buf);

//преобразовываем к вещественному типу

a=Double.valueOf(String.valueOf(buf).trim()).double Value();

// После этого закрываем блок обработки исключительных ситуаций.

}

// описываем поведение системы в случае возникновения

// ошибки при чтении данных

catch (IOException e){

System.out.println(e.getMessage());

a = 0;

}

// описываем поведение системы в случае возникновения

// ошибки при преобразовании текстовых данных в

// вещественное число

catch (NumbericFormatException e1) {

System.out.println (e1.getMessage());

a=0;

}

Поскольку чтение данных с клавиатуры, является достаточно часто используемой операцией, то для удобства в программе обычно создают функции для операций, которые выполняются неоднократно. Рассмотрим это на примере:

import java.io.IOException;

import java.io.InputStreamReader;

import java.lang.NumbericFormatReader;

import java.lang.Double;

// объявляем класс

Class m_cls {

// создаем функцию чтения строки

public String read_str() {

// Объявляем переменную в которой будет помещен

// результат ввода информации

String a;

// Определяем блок обработки исключительных ситуаций

try {

// Объявляем и создаем объект преобразования данных потока

// В текстовой вид

InputStreamReader is=new InputStreamReader(System.in);

// Объявляем текстовой буфер, длина которого соответствует

// максимальной длине строки.

char buf[] = new char[128];

// После этого в этот буфер производим чтение

is.read(buf);

// Этот буфер мы преобразовываем к строке

a=String.valueOf(buf);

// После этого закрываем блок обработки исключительных ситуаций.

}

// И описываем поведение системы в случае возникновения

// ошибки при чтении данных

catch (IO Exception e) {

System.out.println(e.getMessage());

a = null;

}

if (a = = null) return “”;

return a.trim();

}

// и функцию чтения вещественного числа

public double read_double() {

// Объявляем переменную в которой будет помещен

// результат ввода информации

double a = 0;

// Определяем блок обработки исключительных ситуаций

try {

a=Double.valueOf(read_str()).doubleValue();

}

// И описываем поведение системы в случае возникновения

// ошибки при чтении данных

catch (NumbericFormatException e){

System.out.println(e.getMessage());

a=0;

}

return a;

}

}

 








Дата добавления: 2016-01-03; просмотров: 1296;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.011 сек.