Ввод/вывод информации

Форматированный вывод System.out.printf

Метод вывода в консоль System.out.println (x), где x - переменная, содержащая число, выводит максимальное количество ненулевых цифр числа x, заданных типом. Например:

double d = 99;
System.out.println (d / 47);

выведет на экран число :


2.106382978723404;
 

Данная точность вывода иногда бывает избыточной для представления результатов вычислений. Для того, чтобы числа можно было представить в требуемом формате в Java SE применяется метод System.out.println (). Например последовательность команд

double d = 99;
System.out.printf ("99 / 47 = %.2f", d / 47);

выведет на экран строку :


99 / 47 = 2.11;
 

Обычный текст выводится на экран без изменений. Значение числа отображается согласно спецификации преобразования данных. Спецификация преобразования начинается с символа '%' и заканчивается спецификатором. Некоторые спецификаторы указаны в следующей таблице:

СпецификаторТип значения
dцелое десятичное число
fдесятичная форма вещественного числа
eэкспоненциальная форма вещественного числа
sстрока
cсимвол
bboolean

Для представления числовых значений бывает полезным использовать в спецификации преобразования указание ширины поля и точности. Ширина поля и точность последовательно указываются между '%' и спецификатором и отделяются друг от друга точкой.

Ширина поля - целое положительное число, определяющее длину (в символах экрана) представления выводимого значения (позиции на знак числа и десятичную точку входят в ширину поля вывода).

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

Ввод данных с клавиатуры, Scanner

Для ввода данных с клавиатуры необходимо создать объект, который будет использоваться для чтения из стандартного потока ввода. Этот объект имеет тип Scanner, описанный в пакете java.util. Класс необходимо импортировать в программу, использующую команды ввода данных из какого-либо потока.

Пример ввода данных:

public class InputTest
{
    public static void main(String[] args)
	{
        // создание объекта чтения из стандартного потока ввода
        Scanner in = new Scanner(System.in);
        System.out.println("Enter your name, please:");
        // чтение строки из консоли
        String name = in.nextLine();
        System.out.printf("Hello, %s", name);
    }
}

Для ввода целых чисел используется метод nextInt(), для дробных - nextDouble().

Блокирование ввода и вывода

Для блокирования ввода/вывода необходимо закрыть входные и выходные потоки.

try {
    System.in.close();
    System.out.close();
} catch (IOException e) {}
Наверх
  Рейтинг@Mail.ru