Ввод/вывод данных в консольном режиме.
Для вывода данных в консольном режиме используется функция из пакета 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; просмотров: 1282;