n CharArrayReader и CharArrayWriter аналогичны ByteArrayInputStream и ByteArrayOutputStream, но оперируют с массивом символов
n StringReader и StringWriter имеют аналогичную функциональность, позволяют считывать символы из строки и записывать данные в строковый буфер
Группа потоков Print
n Обертки PrintStream и PrintWriter содержат методы, упрощающие задачу вывода данных простых типов в текстовом виде
n Методы print () и println () не выбрасывают исключений
n System . out и System . err – единственные потоки PrintStream
Группа потоков File
FileWriter
n Позволяют трактовать файл как поток, предназначенный для ввода и вывода данных
n Связаны с исключениями FileNotFoundException и SecurityException
n Конструкторы могут получать параметры:
l Строку String, задающую имя файла
l Объект класса File
l Объект FileDescriptor (возвращается методом getFD () байтовых потоков)
Вопрос 49 Класс File. Работа с файловой системой. 23 Лекция Механизмы ввода-вывода информации. Понятие сериализации.
Класс File
n Инкапсулирует платформенно-независимые методы работы с файлами и директориями:
l создание
l проверка атрибутов
l удаление
l переименование
n Позволяет создавать временные файлы, удаляемые при завершении работы программы
n API классы пока не смотрел
Вопрос 50 Форматированный ввод/вывод. 29-39 Лекция Механизмы ввода-вывода информации. Понятие сериализации.
Форматированные ввод и вывод ( Java 5)
n java . util . Formatter
Обеспечивает преобразования формата, позволяющие выводить числа, строки, время и даты в практически любом нужном вам формате
n java . util . Scanner
Позволяет использовать форматированный ввод и преобразовывать значения к нужным типам
Java.util.Formatter Конструкторы
n Имеет множество конструкторов, позволяющих задать следующие параметры (либо, если они не заданы, использовать значения по умолчанию)
n Объект вывода
l Appendable a
l File file
l String fileName
l OutputStream os
l PrintStream ps
l по умолчанию – без автоматического вывода
n Кодовая таблица
l String charSet
l по умолчанию – текущая таблица
n Параметры локализации
l Locale locale
l по умолчанию – текущие параметры
Java . util . Formatter Важные методы
n Formatter format ( String fmtString , Object ... args )
Форматирует указанные аргументы в соответствии со строкой форматирования
n Formatter format(Locale loc, String fmtString, Object ... args)
Форматирует указанные аргументы в соответствии со строкой форматирования и указанной локализацией
Java . util . Formatter Важные методы
n IOException ioException () Возвращает объект исключения, генерируемый объектом-приемником, иначе null
n Appendable out () Возвращает ссылку на объект-приемник выходных данных
n Locale locale () Возвращает ссылку на объект локализации
Java . util . Formatter Важные методы
n String toString () Возвращает объект типа String, содержащий отформатированный вывод
n void flush () Переносит информацию из буфера форматирования
n void close () Закрывает объект форматировщика, освобождает ресурсы
Строка форматирования
n Строка форматирования состоит из:
l простых символов
Просто копируются в вывод
l спецификаторов формата
Определяют способ отображения аргументов
n Спецификатор формата:
l знак процента (%)
l преобразующий спецификатор формата
Formatter fmt = new Formatter();
fmt.format("Formatting %s is easy! % d % f ",
" with Java ", 15, 12.3);
Преобразующие спецификаторы формата
Возможности форматирования
n Порядковый номер аргумента
Позволяет использовать не текущий аргумент, а заданный
fmt.format("%3$d %2$d %1$d", 1, 2, 3); // 3 2 1
n Относительный номер
Позволяет несколько раз вывести одно и то же значение без явной нумерации
Calendar c = Calendar.getInstance();
fmt.format("Today is day %te of %<tB, %<tY", c);
// Today is day 4 of December, 2006
Возможности форматирования
n Управление регистром вывода
fmt.format("Some %s", "String"); //Some String
fmt.format("Some %S", "String"); //Some STRING
n Сложное форматирование времени и даты
fmt.format("Now is %tH:%<tS of %<td.%<tm.%<ty \n", c);
fmt.format("Now is %tl:%<tS%<tp of %<te %<tB %<tY \n", c);
// Now is 20:03 of 04.10.09
// Now is 8:03pm of 4 October 2009
n Задание минимальной ширины поля
fmt.format("%3s %3s %3s %3s ", "1", "22", "333", "4444");
// 1 22 333 4444
Возможности форматирования
n Задание точности вывода для вещественных значений
fmt.format("%10.2f %10.8f", Math.PI, Math.PI);
// 3.14 3.14159265
n Выравнивание вывода
fmt.format("%-10.2f|%10.2f", Math.PI, Math.PI);
// 3.14 | 3.14
n Разделение групп цифр и т.д.
fmt.format("%,d", Integer.MAX_VALUE);
// 2 ,147,483,647
Метод printf()
n Использует автоматически создаваемый экземпляр класса Formatter
n Объявлен в классах:
l java.io.PrintWriter
l java.io.PrintStream
n Имеет такие же параметры, что и метод Formatter . format ()
Дата: 2019-07-30, просмотров: 221.