Ввод-вывод Java программ

Стандартный вывод

Данные производимые программой называются выводом. Этот вывод может направляться на различные устройства. Java программы могут посылать вывод в окно терминала используя объект, который называется стандартный вывод (standard out). Доступ к этому объекту может быть получен через публичное статическое финальное поле out в классе System. Стандартный вывод является объектом класса java.io.PrintStream, который предоставляет методы для печати значений. Эти методы преобразуют значения к их строковому представлению и печатают результирующие строки.

System.out.println("Original string: " + str);
System.out.print("Reversed string: ");
System.out.println(); 

Форматированный вывод

Чтобы получить больше контроля над печатаемыми значениями, можно создать форматированный вывод. Для этого у класса java.io.PrintStream есть следующий метод:
Ошибки в аргументе format приведут к ошибке среды исполнения.

System.out.printf("Formatted values|%5d|%8.3f|%5s|%n", // Format string
                   2016, Math.PI, "Hi");               // Values to format
// Formatted values| 2016|   3.142|   Hi|

Буква в спецификаторе формата обозначает тип значения для форматирования.
%n - это зависимый от платформы разделитель строк.
В приведенном выше примере выравнивание делается по правому краю.

Примеры спецификаторов формата

Пример форматированного вывода:

// File: Invoice.java
public class Invoice {
  public static void main(String[] args) {
    System.out.printf("Secure Data Inc.       ");
    System.out.printf("%02d/%02d/%04d, %02d:%02d%n%n",
                       2, 13, 2016, 11, 5);
    System.out.printf("%-20s%7s%9s%8s%n",
                      "Item", "Price", "Quantity", "Amount");

    int quantity = 4;
    double price = 120.25, amount = quantity*price, total = amount;
    String itemFormat = "%-20s%7.2f%9d%8.2f%n";
    System.out.printf(itemFormat,
                      "FlashDrive, 250GB", price, quantity, amount);
    quantity = 2;
    price = 455.0; amount = quantity*price; total = total + amount;
    System.out.printf(itemFormat,
                      "Ultra HD, 4TB", price, quantity, amount);
    quantity = 1;
    price = 8.50; amount = quantity*price; total = total + amount;
    System.out.printf(itemFormat,
                      "USB 3.0 cable", price, quantity, amount);

    System.out.printf("%-36s%8.2f%n", "Total:", total);
  }
}

/*
Secure Data Inc.       02/13/2016, 11:05

Item                  Price Quantity  Amount
FlashDrive, 250GB    120.25        4  481.00
Ultra HD, 4TB        455.00        2  910.00
USB 3.0 cable          8.50        1    8.50
Total:                               1399.50
*/


Комментариев нет:

Отправить комментарий