Spec-Zone .ru
спецификации, руководства, описания, API
|
public final class Formatter extends Object implements Closeable, Flushable
byte
, BigDecimal
, и Calendar
поддерживаются. Ограниченная настройка форматирования для произвольных пользовательских типов обеспечивается через Formattable
интерфейс. Средства форматирования не обязательно безопасны для многопоточного доступа. Потокобезопасность является дополнительной и является ответственностью пользователей методов в этом class.
Отформатированная печать для языка Java в большой степени вдохновляется К printf
. Хотя строки формата подобны C, некоторые настройки были сделаны разместить язык Java и использовать некоторые из его функций. Кроме того, форматирование Java более строго чем К; например, если преобразование будет несовместимым с флагом, то исключение будет выдано. В неподходящих флагах C тихо игнорируются. Строки формата таким образом предназначаются, чтобы быть распознаваемыми программистам C, но не обязательно абсолютно совместимыми с теми в C.
Примеры ожидаемого использования:
StringBuilder sb = new StringBuilder(); // Send all output to the Appendable object sb Formatter formatter = new Formatter(sb, Locale.US); // Explicit argument indices may be used to re-order output. formatter.format("%4$2s %3$2s %2$2s %1$2s", "a", "b", "c", "d") // -> " d c b a" // Optional locale as the first argument can be used to get // locale-specific formatting of numbers. The precision and width can be // given to round and align the value. formatter.format(Locale.FRANCE, "e = %+10.4f", Math.E); // -> "e = +2,7183" // The '(' numeric flag may be used to format negative numbers with // parentheses rather than a minus sign. Group separators are // automatically inserted. formatter.format("Amount gained or lost since last statement: $ %(,.2f", balanceDelta); // -> "Amount gained or lost since last statement: $ (6,217.58)"
Методы удобства для общих запросов форматирования существуют как иллюстрировано следующими вызовами:
// Writes a formatted string to System.out. System.out.format("Local time: %tT", Calendar.getInstance()); // -> "Local time: 13:34:18" // Writes formatted output to System.err. System.err.printf("Unable to open file '%1$s': %2$s", fileName, exception.getMessage()); // -> "Unable to open file 'food': No such file or directory"
Как К sprintf(3)
, Строки могут быть отформатированы, используя статический метод String.format
:
// Format a string containing a date. import java.util.Calendar; import java.util.GregorianCalendar; import static java.util.Calendar.*; Calendar c = new GregorianCalendar(1995, MAY, 23); String s = String.format("Duke's Birthday: %1$tm %1$te,%1$tY", c); // -> s == "Duke's Birthday: May 23, 1995"
Эта спецификация делится на два раздела. Первый раздел, Сводка, покрывает основные понятия форматирования. Этот раздел предназначается для пользователей, которые хотят начать быстро и знакомы с отформатированной печатью в других языках программирования. Второй раздел, Детали, покрывает определенные детали реализации. Это предназначается для пользователей, которые хотят более точную спецификацию форматирования поведения.
Этот раздел предназначается, чтобы обеспечить краткий обзор форматирования понятий. Для точных поведенческих деталей обратитесь к разделу Деталей.
Каждый метод, который производит отформатированный вывод, требует строки формата и списка параметров. Строка формата является a String
который может содержать фиксированный текст и один или более встроенные спецификаторы формата. Рассмотрите следующий пример:
Эта строка формата является первым параметромCalendar c = ...; String s = String.format("Duke's Birthday: %1$tm %1$te,%1$tY", c);
format
метод. Это содержит три спецификатора формата"%1$tm
", "%1$te
", и"%1$tY
"которые указывают, как параметры должны быть обработаны и где они должны быть вставлены в текст. Остающиеся части строки формата являются фиксированным текстом включая "Dukes Birthday: "
и любые другие пробелы или пунктуация. Список параметров состоит из всех параметров, которые передают к методу после строки формата. В вышеупомянутом примере список параметров имеет размер один и состоит из Calendar
объект c
. %[argument_index$][flags][width][.precision]conversion
Дополнительный argument_index является десятичным целым числом, указывающим на позицию параметра в списке параметров. На первый параметр ссылаются"1$
", второе"2$
", и т.д.
Дополнительные флаги являются рядом символов, которые изменяют выходной формат. Набор допустимых флагов зависит от преобразования.
Дополнительный width является неотрицательным десятичным целым числом, указывающим на минимальное число символов, которые будут записаны выводу.
Дополнительная точность является неотрицательным десятичным целым числом, обычно используемым, чтобы ограничить число символов. Определенное поведение зависит от преобразования.
Необходимое преобразование является символом, указывающим, как параметр должен быть отформатирован. Набор допустимых преобразований для данного параметра зависит от типа данных параметра.
%[argument_index$][flags][width]conversion
Дополнительный argument_index, флаги и width определяются как выше.
Необходимое преобразование является двумя символьными последовательностями. Первый символ 't'
или 'T'
. Второй символ указывает на формат, который будет использоваться. Эти символы подобны, но не абсолютно идентичны определенным GNU date
и POSIX strftime(3c)
.
%[flags][width]conversion
Дополнительные флаги и width определяются как выше.
Необходимое преобразование является контентом указания символа, который будет вставлен в вывод.
Преобразования делятся на следующие категории:
char
, Character
, byte
, Byte
, short
, и Short
. Это преобразование может также быть применено к типам int
и Integer
когда Character.isValidCodePoint(int)
возвраты true
byte
, Byte
, short
, Short
, int
и Integer
, long
, Long
, и BigInteger
float
, Float
, double
, Double
, и BigDecimal
long
, Long
, Calendar
, Date
и TemporalAccessor
'%'
('\u0025') Следующая таблица суммирует поддерживаемые преобразования. Преобразования, обозначенные символом верхнего регистра (то есть. 'B'
, 'H'
, 'S'
, 'C'
, 'X'
, 'E'
, 'G'
, 'A'
, и 'T'
) то же самое как те для соответствующих строчных символов преобразования за исключением того, что результат преобразовывается в верхний регистр согласно правилам преобладания Locale
. Результат эквивалентен следующему вызову String.toUpperCase()
out.toUpperCase()
Преобразование | Категория параметра | Описание |
---|---|---|
'b' , 'B'
| общий | Если аргумент параметра null , тогда результат"false ". Если аргумент является a boolean или Boolean , тогда результатом является строка, возвращенная String.valueOf(arg) . Иначе, результатом является "истина". |
'h' , 'H'
| общий | Если аргумент параметра null , тогда результат"null ". Иначе, результат получается, вызывая Integer.toHexString(arg.hashCode()) . |
's' , 'S'
| общий | Если аргумент параметра null , тогда результат"null ". Если аргумент реализует Formattable , тогда arg.formatTo вызывается. Иначе, результат получается, вызывая arg.toString() . |
'c' , 'C'
| символ | Результатом является символ Unicode |
'd'
| интеграл | Результат форматируется как десятичное целое число |
'o'
| интеграл | Результат форматируется как восьмеричное целое число |
'x' , 'X'
| интеграл | Результат форматируется как шестнадцатеричное целое число |
'e' , 'E'
| плавающая точка | Результат форматируется как десятичное число в компьютеризированном экспоненциальном представлении |
'f'
| плавающая точка | Результат форматируется как десятичное число |
'g' , 'G'
| плавающая точка | Результат форматируется, используя компьютеризированное экспоненциальное представление или десятичный формат, в зависимости от точности и значения после округления. |
'a' , 'A'
| плавающая точка | Результат форматируется как шестнадцатеричное число с плавающей точкой с мантиссой и экспонентой. Это преобразование не поддерживается для BigDecimal введите несмотря на то, что последний был в категории параметра с плавающей точкой. |
't' , 'T'
| дата/время | Префикс для даты и символов преобразования времени. См. Преобразования Даты/Времени. |
'%'
| процент | Результатом является литерал '%' ('\u0025') |
'n'
| разделитель строки | Результатом является специфичный для платформы разделитель строки |
Любые символы, не явно определенные как преобразования, недопустимы и резервируются для будущих расширений.
Следующая дата и символы суффикса преобразования времени определяются для 't'
и 'T'
преобразования. Типы подобны, но не абсолютно идентичны определенным GNU date
и POSIX strftime(3c)
. Дополнительные типы преобразования обеспечиваются, чтобы получить доступ к специфичной для Java функциональности (например. 'L'
для миллисекунд в пределах второго).
Следующие символы преобразования используются для того, чтобы отформатировать времена:
'H'
| Час дня для 24-часовых часов, отформатированных как две цифры с начальным нулем по мере необходимости то есть. 00 - 23 . |
'I'
| Час для 12-часовых часов, отформатированных как две цифры с начальным нулем по мере необходимости, то есть. 01 - 12 . |
'k'
| Час дня для 24-часовых часов, то есть. 0 - 23 . |
'l'
| Час для 12-часовых часов, то есть. 1 - 12 . |
'M'
| Минута в течение часа, отформатированного как две цифры с начальным нулем по мере необходимости, то есть. 00 - 59 . |
'S'
| Секунды в течение минуты, отформатированной как две цифры с начальным нулем по мере необходимости, то есть. 00 - 60 ("60 "специальное значение, требуемое поддерживать секунды прыжка). |
'L'
| Миллисекунда в пределах второго, отформатированного как три цифры с начальными нулями по мере необходимости, то есть. 000 - 999 . |
'N'
| Наносекунда в пределах второго, отформатированного как девять цифр с начальными нулями по мере необходимости, то есть. 000000000 - 999999999 . |
'p'
| Специфичный для локали маркер утра или дня в нижнем регистре, например,"am "или"pm ". Использование префикса преобразования 'T' силы этот вывод к верхнему регистру. |
'z'
| Стиль -0800 . Это значение будет скорректировано по мере необходимости в течение Летнего времени. Для long , Long , и Date используемый часовой пояс является часовым поясом значения по умолчанию для этого экземпляра виртуальной машины Java. |
'Z'
| Строка, представляющая сокращение для часового пояса. Это значение будет скорректировано по мере необходимости в течение Летнего времени. Для long , Long , и Date используемый часовой пояс является часовым поясом значения по умолчанию для этого экземпляра виртуальной машины Java. Локаль Средства форматирования заменит локаль параметра (если любой). |
's'
| Секунды с начала эпохи, запускающейся 1 января 1970 00:00:00 UTC, то есть. Long.MIN_VALUE/1000 к Long.MAX_VALUE/1000 . |
'Q'
| Миллисекунды с начала эпохи, запускающейся 1 января 1970 00:00:00 UTC, то есть. Long.MIN_VALUE к Long.MAX_VALUE . |
Следующие символы преобразования используются для того, чтобы отформатировать даты:
'B'
| Специфичное для локали полное имя месяца, например. "January" , "February" . |
'b'
| Специфичное для локали сокращенное имя месяца, например. "Jan" , "Feb" . |
'h'
| То же самое как 'b' . |
'A'
| Специфичное для локали полное имя дня недели, например. "Sunday" , "Monday"
|
'a'
| Специфичное для локали краткое название дня недели, например. "Sun" , "Mon"
|
'C'
| Год из четырех знаков, разделенный на 100 , отформатированный как две цифры с начальным нулем по мере необходимости, то есть. 00 - 99
|
'Y'
| Год, отформатированный как по крайней мере четыре цифры с начальными нулями по мере необходимости, например. 0092 равняется 92 CE для Григорианского календаря. |
'y'
| Последние две цифры года, отформатированного с начальными нулями по мере необходимости, то есть. 00 - 99 . |
'j'
| День года, отформатированного как три цифры с начальными нулями по мере необходимости, например. 001 - 366 для Григорианского календаря. |
'm'
| Месяц, отформатированный как две цифры с начальными нулями по мере необходимости, то есть. 01 - 13 . |
'd'
| День месяца, отформатированного как две цифры с начальными нулями по мере необходимости, то есть. 01 - 31
|
'e'
| День месяца, отформатированного как две цифры, то есть. 1 - 31 . |
Следующие символы преобразования используются для того, чтобы отформатировать общие составы даты/времени.
'R'
| Время, отформатированное для 24-часовых часов как "%tH:%tM"
|
'T'
| Время, отформатированное для 24-часовых часов как "%tH:%tM:%tS" . |
'r'
| Время, отформатированное для 12-часовых часов как "%tI:%tM:%tS %Tp" . Расположение маркера утра или дня ('%Tp' ) может быть зависимым от локали. |
'D'
| Дата, отформатированная как "%tm/%td/%ty" . |
'F'
| "%tY-%tm-%td" . |
'c'
| Дата и время, отформатированное как "%ta %tb %td %tT %tZ %tY" , например. "Sun Jul 20 16:17:00 EDT 1969" . |
Любые символы, не явно определенные как суффиксы преобразования даты/времени, недопустимы и резервируются для будущих расширений.
Следующая таблица суммирует поддерживаемые флаги. y означает, что флаг поддерживается для обозначенных типов параметра.
Флаг | Общий | Символ | Интеграл | Плавающая точка | Дата/Время | Описание |
---|---|---|---|---|---|---|
'-' | y | y | y | y | y | Результат будет лево-выровнен по ширине. |
'#' | y1 | - | y3 | y | - | Результат должен использовать зависимую от преобразования альтернативную форму |
'+' | - | - | y4 | y | - | Результат будет всегда включать знак |
' ' | - | - | y4 | y | - | Результат будет включать ведущее пространство для положительных значений |
'0' | - | - | y | y | - | Результат будет дополнен нулем |
',' | - | - | y2 | y5 | - | Результат будет включать специфичные для локали разделители группировки |
'(' | - | - | y4 | y5 | - | Результат включит отрицательные числа в круглые скобки |
1 Зависит от определения Formattable
.
2 Для 'd'
преобразование только.
3 Для 'o'
, 'x'
, и 'X'
преобразования только.
4 Для 'd'
, 'o'
, 'x'
, и 'X'
преобразования применялись к BigInteger
или 'd'
примененный к byte
, Byte
, short
, Short
, int
и Integer
, long
, и Long
.
5 Для 'e'
, 'E'
, 'f'
, 'g'
, и 'G'
преобразования только.
Любые символы, не явно определенные как флаги, недопустимы и резервируются для будущих расширений.
width является минимальным числом символов, которые будут записаны выводу. Для преобразования разделителя строки width не применим; если это будет обеспечено, то исключение будет выдано.
Для общих типов параметра точность является максимальным количеством символов, которые будут записаны выводу.
Для преобразований с плавающей точкой 'e'
, 'E'
, и 'f'
точность является числом цифр после десятичного разделителя. Если преобразование 'g'
или 'G'
, тогда точность является общим количеством цифр в получающейся величине после округления. Если преобразование 'a'
или 'A'
, тогда точность не должна быть определена.
Для символа, интеграла, и типов параметра даты/времени и процента и преобразований разделителя строки, точность не применима; если точность будет обеспечена, то исключение будет выдано.
Параметр индексирует, десятичное целое число, указывающее на позицию параметра в списке параметров. На первый параметр ссылаются"1$
", второе"2$
", и т.д.
Другой способ сослаться на параметры позицией состоит в том, чтобы использовать '<'
Флаг ('\u003c'), который заставляет параметр за предыдущий спецификатор формата быть снова использованным. Например, следующие два оператора произвели бы идентичные строки:
Calendar c = ...; String s1 = String.format("Duke's Birthday: %1$tm %1$te,%1$tY", c); String s2 = String.format("Duke's Birthday: %1$tm %<te,%<tY", c);
Этот раздел предназначается, чтобы обеспечить поведенческие детали для того, чтобы они отформатировали, включая условия и исключения, поддерживаемые типы данных, локализацию, и взаимодействия между флагами, преобразованиями, и типами данных. Для краткого обзора форматирования понятий сошлитесь на Сводку
Любые символы, не явно определенные как преобразования, суффиксы преобразования даты/времени, или флаги, недопустимы и резервируются для будущих расширений. Использование такого символа в строке формата вызовет UnknownFormatConversionException
или UnknownFormatFlagsException
быть брошенным.
Если спецификатор формата содержит width или точность с недопустимым значением или который иначе неподдерживается, то a IllegalFormatWidthException
или IllegalFormatPrecisionException
соответственно будет брошен.
Если спецификатор формата содержит символ преобразования, который не применим к соответствующему параметру, то IllegalFormatConversionException
будет брошен.
Все указанные исключения могут быть выданы любым из format
методы Formatter
так же как любым format
методы удобства такой как String.format
и PrintStream.printf
.
Преобразования, обозначенные символом верхнего регистра (то есть. 'B'
, 'H'
, 'S'
, 'C'
, 'X'
, 'E'
, 'G'
, 'A'
, и 'T'
) то же самое как те для соответствующих строчных символов преобразования за исключением того, что результат преобразовывается в верхний регистр согласно правилам преобладания Locale
. Результат эквивалентен следующему вызову String.toUpperCase()
out.toUpperCase()
Следующие общие преобразования могут быть применены к любому типу параметра:
'b'
| '\u0062' | Производит любого"true "или"false "как возвращено Boolean.toString(boolean) . Если параметр Если |
'B'
| '\u0042' | Разновидность верхнего регистра 'b' . |
'h'
| '\u0068' | Производит строку, представляющую значение хэш-кода объекта. Если параметр, аргумент Если |
'H'
| '\u0048' | Разновидность верхнего регистра 'h' . |
's'
| '\u0073' | Производит строку. Если параметр Если |
'S'
| '\u0053' | Разновидность верхнего регистра 's' . |
Следующие флаги применяются к общим преобразованиям:
'-'
| '\u002d' | Оставленный выравнивает по ширине вывод. Пробелы ('\u0020') будут добавлены в конце преобразованного значения как требуется, чтобы заполнить минимальный width поля. Если width не обеспечивается, то a MissingFormatWidthException будет брошен. Если этот флаг не будет дан тогда, то вывод будет выровнен по правому знаку. |
'#'
| '\u0023' | Требует, чтобы вывод использовал альтернативную форму. Определение формы определяется преобразованием. |
width является минимальным числом символов, которые будут записаны выводу. Если длина преобразованного значения будет меньше чем width тогда, то вывод будет дополнен ' ' ('\u0020'), пока общее количество символов не будет равняться width. Дополнение слева по умолчанию. Если '-'
флаг дается, тогда дополнение будет справа. Если width не определяется тогда нет никакого минимума.
Точность является максимальным количеством символов, которые будут записаны выводу. Точность применяется перед width таким образом вывод будет усеченным к precision
символы, даже если width больше чем точность. Если точность не определяется тогда нет никакого явного предела на числе символов.
char
и Character
. Это может также быть применено к типам byte
, Byte
, short
, и Short
, int
и Integer
когда Character.isValidCodePoint(int)
возвраты true
. Если это возвращается false
тогда IllegalFormatCodePointException
будет брошен. 'c'
| '\u0063' | Форматирует параметр как символ Unicode как описано в Представлении Символа Unicode. Это может быть больше чем одним 16-разрядным char в случае, где параметр представляет дополнительный символ. Если |
'C'
| '\u0043' | Разновидность верхнего регистра 'c' . |
'-'
флаг, определенный для Общих преобразований, применяется. Если '#'
флаг дается, тогда a FormatFlagsConversionMismatchException
будет брошен.
width определяется что касается Общих преобразований.
Точность не применима. Если точность определяется тогда IllegalFormatPrecisionException
будет брошен.
Числовые преобразования делятся на следующие категории:
Числовые типы будут отформатированы согласно следующему алгоритму:
После того, как цифры получаются для целой части, дробной части, и экспоненты (как соответствующий для типа данных), следующее преобразование применяется:
'0'
+ z. ','
('\u002c'), который флаг дается, тогда специфичный для локали разделитель группировки, вставляется, сканируя целую часть строки от младшего значащего до старших значащих цифр и вставляя разделитель, с промежутками определенный размером группировки локали. '0'
флаг дается, тогда специфичные для локали нулевые цифры вставляются после символа знака, если таковые вообще имеются, и перед первой ненулевой цифрой, пока длина строки не равна требуемому полю width. '('
флаг дается, тогда a '('
('\u0028') предварительно ожидается и a ')'
('\u0029') добавляется. '('
флаг не дается, тогда a '-'
('\u002d') предварительно ожидается. '+'
флаг дается, и значение положительно или нуль (или положительный нуль с плавающей точкой), тогда a '+'
('\u002b') будет предварительно ожидаться. Если значением будет НЭН или положительная бесконечность литеральные строки "НЭН" или "Бесконечность" соответственно, то будет выведен. Если значение будет отрицательной бесконечностью, то вывод будет" (Бесконечность)" если '('
флаг дается иначе, вывод будет "-Бесконечность". Эти значения не локализуются.
Байт, Короткий, Целочисленный, и Долго
Следующим преобразованиям можно примениться к byte
, Byte
, short
, Short
, int
и Integer
, long
, и Long
.
'd'
| '\u0054' | Форматирует параметр как десятичное целое число. Алгоритм локализации применяется. Если Если |
'o'
| '\u006f' | Форматирует параметр как целое число в основе восемь. Никакая локализация не применяется. Если x будет отрицателен тогда, то результатом будет значение без знака, сгенерированное, добавляя 2n к значению где Если Если Если |
'x'
| '\u0078' | Форматирует параметр как целое число в основе шестнадцать. Никакая локализация не применяется. Если x будет отрицателен тогда, то результатом будет значение без знака, сгенерированное, добавляя 2n к значению где Если Если Если |
'X'
| '\u0058' | Разновидность верхнего регистра 'x' . Вся строка, представляющая число, будет преобразована в верхний регистр включая 'x' (если любой) и все шестнадцатеричные цифры 'a' - 'f' ('\u0061' - '\u0066'). |
Если преобразование 'o'
, 'x'
, или 'X'
и оба '#'
и '0'
флаги даются, затем заканчиваются, будет содержать индикатор основания ('0'
для восьмеричного и "0x"
или "0X"
для шестнадцатеричного), некоторое число нулей (основанный на width), и значение.
Если '-'
флаг не дается, тогда дополнение пространства произойдет перед знаком.
Следующие флаги применяются к числовым интегральным преобразованиям:
'+'
| '\u002b' | Требует, чтобы вывод включал положительный знак для всех положительных чисел. Если этот флаг не будет дан тогда, то только отрицательные величины будут включать знак. Если оба |
' ' | '\u0020' | Требует, чтобы вывод включал единственное дополнительное пространство ('\u0020') для неотрицательных значений. Если оба |
'0'
| '\u0030' | Требует, чтобы вывод был дополнен начальными нулями к минимальному полю width после любого знака или индикатора основания кроме тех случаев, когда, преобразовывая НЭН или бесконечность. Если width не обеспечивается, то a MissingFormatWidthException будет брошен. Если оба |
','
| '\u002c' | Требует, чтобы вывод включал специфичные для локали разделители группы как описано в "групповой" раздел алгоритма локализации. |
'('
| '\u0028' | Требует, чтобы вывод предварительно ожидал a '(' ('\u0028') и добавляет a ')' ('\u0029') к отрицательным величинам. |
Если никаким флагам не дают, форматирование значения по умолчанию следующие:
width
'-'
('\u002d') width является минимальным числом символов, которые будут записаны выводу. Это включает любые знаки, цифры, группируя разделители, индикатор основания, и круглые скобки. Если длина преобразованного значения будет меньше чем width тогда, то вывод будет дополнен пробелами ('\u0020'), пока общее количество символов не будет равняться width. Дополнение слева по умолчанию. Если '-'
флаг дается тогда, дополнение будет справа. Если width не определяется тогда нет никакого минимума.
Точность не применима. Если точность определяется тогда IllegalFormatPrecisionException
будет брошен.
Следующим преобразованиям можно примениться к BigInteger
.
'd'
| '\u0054' | Требует, чтобы вывод был отформатирован как десятичное целое число. Алгоритм локализации применяется. Если |
'o'
| '\u006f' | Требует, чтобы вывод был отформатирован как целое число в основе восемь. Никакая локализация не применяется. Если x будет отрицателен тогда, то результатом будет подписанное начинающееся значение Если x положителен или нуль и Если Если Если |
'x'
| '\u0078' | Требует, чтобы вывод был отформатирован как целое число в основе шестнадцать. Никакая локализация не применяется. Если x будет отрицателен тогда, то результатом будет подписанное начинающееся значение Если x положителен или нуль и Если Если Если |
'X'
| '\u0058' | Разновидность верхнего регистра 'x' . Вся строка, представляющая число, будет преобразована в верхний регистр включая 'x' (если любой) и все шестнадцатеричные цифры 'a' - 'f' ('\u0061' - '\u0066'). |
Если преобразование 'o'
, 'x'
, или 'X'
и оба '#'
и '0'
флаги даются, затем заканчиваются, будет содержать основной индикатор ('0'
для восьмеричного и "0x"
или "0X"
для шестнадцатеричного), некоторое число нулей (основанный на width), и значение.
Если '0'
флаг дается, и значение отрицательно, тогда нулевое дополнение произойдет после знака.
Если '-'
флаг не дается, тогда дополнение пространства произойдет перед знаком.
Все флаги, определенные для Байта, Короткого, Целочисленного, и Лонг, применяются. Поведение значения по умолчанию, когда никакие флаги не даются, является тем же самым что касается Байта, Короткого, Целочисленного, и Лонг.
Спецификация width является тем же самым как определено для Байта, Короткого, Целочисленного, и Лонг.
Точность не применима. Если точность определяется тогда IllegalFormatPrecisionException
будет брошен.
Следующим преобразованиям можно примениться к float
, Float
, double
и Double
.
'e'
| '\u0065' | Требует, чтобы вывод был отформатирован, используя компьютеризированное экспоненциальное представление. Алгоритм локализации применяется. Форматирование величины м. зависит от его значения. Если м. будет НЭН или бесконечный, то литеральные строки "НЭН" или "Бесконечность", соответственно, будут выведены. Эти значения не локализуются. Если м. будет положительным нулем или отрицательным нулем, то экспонента будет Иначе, результатом является строка, которая представляет знак и величину (абсолютное значение) параметра. Форматирование знака описывается в алгоритме локализации. Форматирование величины м. зависит от его значения. Позвольте n быть уникальным целым числом так, что 10n <= м. <10n+1; тогда позвольте быть математически точным частным м. и 10n так, чтобы 1 <= <10. Величина тогда представляется как целая часть a, как единственная десятичная цифра, сопровождаемая десятичным разделителем, сопровождаемым десятичными цифрами, представляющими дробную часть a, сопровождаемого символом экспоненты Число цифр в результате для дробной части м. или равного точности. Если точность не определяется тогда, значение по умолчанию Если |
'E'
| '\u0045' | Разновидность верхнего регистра 'e' . Символ экспоненты будет 'E' ('\u0045'). |
'g'
| '\u0067' | Требует, чтобы вывод был отформатирован в общем экспоненциальном представлении как описано ниже. Алгоритм локализации применяется. После округления для точности форматирования получающейся величины м. зависит от своего значения. Если м. больше чем или равен 10-4, но меньше чем 10precision тогда, он представляется в десятичном формате. Если м. является меньше чем 10-4 или больше чем или равный 10precision, то он представляется в компьютеризированном экспоненциальном представлении. Общее количество существенных цифр в м. равно точности. Если точность не определяется, то значение по умолчанию Если |
'G'
| '\u0047' | Разновидность верхнего регистра 'g' . |
'f'
| '\u0066' | Требует, чтобы вывод был отформатирован, используя десятичный формат. Алгоритм локализации применяется. Результатом является строка, которая представляет знак и величину (абсолютное значение) параметра. Форматирование знака описывается в алгоритме локализации. Форматирование величины м. зависит от его значения. Если м. НЭН или бесконечный, литеральные строки "НЭН" или "Бесконечность", соответственно, будет выведен. Эти значения не локализуются. Величина форматируется, поскольку целая часть м., без продвижения обнуляет, сопровождаемый десятичным разделителем, сопровождаемым одной или более десятичными цифрами, представляющими дробную часть м. Число цифр в результате для дробной части м. или равного точности. Если точность не определяется тогда, значение по умолчанию |
'a'
| '\u0061' | Требует, чтобы вывод был отформатирован в шестнадцатеричной экспоненциальной форме. Никакая локализация не применяется. Результатом является строка, которая представляет знак и величину (абсолютное значение) параметра x. Если x будет отрицателен или отрицательное нулевое значение тогда, то результат начнется Если x положителен или положительное нулевое значение и Форматирование величины м. зависит от его значения.
Если |
'A'
| '\u0041' | Разновидность верхнего регистра 'a' . Вся строка, представляющая число, будет преобразована в верхний регистр включая 'x' ('\u0078') и 'p' ('\u0070' и все шестнадцатеричные цифры 'a' - 'f' ('\u0061' - '\u0066'). |
Все флаги, определенные для Байта, Короткого, Целочисленного, и Лонг, применяются.
Если '#'
флаг дается, тогда десятичный разделитель будет всегда присутствовать.
Если никаким флагам не дают, форматирование значения по умолчанию следующие:
width
'-'
width является минимальным числом символов, которые будут записаны выводу. Это включает любые знаки, цифры, группируя разделители, десятичные разделители, экспоненциальный символ, индикатор основания, круглые скобки, и строки, представляющие бесконечность и НЭН как применимые. Если длина преобразованного значения будет меньше чем width тогда, то вывод будет дополнен пробелами ('\u0020'), пока общее количество символов не будет равняться width. Дополнение слева по умолчанию. Если '-'
флаг дается тогда, дополнение будет справа. Если width не определяется тогда нет никакого минимума.
Если преобразование 'e'
, 'E'
или 'f'
, тогда точность является числом цифр после десятичного разделителя. Если точность не определяется, то она, как предполагается, 6
.
Если преобразование 'g'
или 'G'
, тогда точность является общим количеством существенных цифр в получающейся величине после округления. Если точность не определяется, то значение по умолчанию 6
. Если точность 0
, тогда это берется, чтобы быть 1
.
Если преобразование 'a'
или 'A'
, тогда точность является числом шестнадцатеричных цифр после десятичного разделителя. Если точность не обеспечивается, то все цифры как возвращено Double.toHexString(double)
будет выведен.
Следующие преобразования могут быть применены BigDecimal
.
'e'
| '\u0065' | Требует, чтобы вывод был отформатирован, используя компьютеризированное экспоненциальное представление. Алгоритм локализации применяется. Форматирование величины м. зависит от его значения. Если м. будет положительным нулем или отрицательным нулем, то экспонента будет Иначе, результатом является строка, которая представляет знак и величину (абсолютное значение) параметра. Форматирование знака описывается в алгоритме локализации. Форматирование величины м. зависит от его значения. Позвольте n быть уникальным целым числом так, что 10n <= м. <10n+1; тогда позвольте быть математически точным частным м. и 10n так, чтобы 1 <= <10. Величина тогда представляется как целая часть a, как единственная десятичная цифра, сопровождаемая десятичным разделителем, сопровождаемым десятичными цифрами, представляющими дробную часть a, сопровождаемого символом экспоненты Число цифр в результате для дробной части м. или равного точности. Если точность не определяется тогда, значение по умолчанию Если |
'E'
| '\u0045' | Разновидность верхнего регистра 'e' . Символ экспоненты будет 'E' ('\u0045'). |
'g'
| '\u0067' | Требует, чтобы вывод был отформатирован в общем экспоненциальном представлении как описано ниже. Алгоритм локализации применяется. После округления для точности форматирования получающейся величины м. зависит от своего значения. Если м. больше чем или равен 10-4, но меньше чем 10precision тогда, он представляется в десятичном формате. Если м. является меньше чем 10-4 или больше чем или равный 10precision, то он представляется в компьютеризированном экспоненциальном представлении. Общее количество существенных цифр в м. равно точности. Если точность не определяется, то значение по умолчанию Если |
'G'
| '\u0047' | Разновидность верхнего регистра 'g' . |
'f'
| '\u0066' | Требует, чтобы вывод был отформатирован, используя десятичный формат. Алгоритм локализации применяется. Результатом является строка, которая представляет знак и величину (абсолютное значение) параметра. Форматирование знака описывается в алгоритме локализации. Форматирование величины м. зависит от его значения. Величина форматируется, поскольку целая часть м., без продвижения обнуляет, сопровождаемый десятичным разделителем, сопровождаемым одной или более десятичными цифрами, представляющими дробную часть м. Число цифр в результате для дробной части м. или равного точности. Если точность не определяется тогда, значение по умолчанию |
Все флаги, определенные для Байта, Короткого, Целочисленного, и Лонг, применяются.
Если '#'
флаг дается, тогда десятичный разделитель будет всегда присутствовать.
Поведение значения по умолчанию, когда никакие флаги не даются, является тем же самым что касается Плавания и Двойной.
Спецификация width и точности является тем же самым как определено для Плавания и Двойной.
Этому преобразованию можно примениться к long
, Long
, Calendar
, Date
и TemporalAccessor
't'
| '\u0074' | Префикс для даты и символов преобразования времени. |
'T'
| '\u0054' | Разновидность верхнего регистра 't' . |
Следующая дата и суффиксы символа преобразования времени определяются для 't'
и 'T'
преобразования. Типы подобны, но не абсолютно идентичны определенным GNU date
и POSIX strftime(3c)
. Дополнительные типы преобразования обеспечиваются, чтобы получить доступ к специфичной для Java функциональности (например. 'L'
для миллисекунд в пределах второго).
Следующие символы преобразования используются для того, чтобы отформатировать времена:
'H'
| '\u0048' | Час дня для 24-часовых часов, отформатированных как две цифры с начальным нулем по мере необходимости то есть. 00 - 23 . 00 соответствует полуночи. |
'I'
| '\u0049' | Час для 12-часовых часов, отформатированных как две цифры с начальным нулем по мере необходимости, то есть. 01 - 12 . 01 соответствует одному часу (или утро или день). |
'k'
| '\u006b' | Час дня для 24-часовых часов, то есть. 0 - 23 . 0 соответствует полуночи. |
'l'
| '\u006c' | Час для 12-часовых часов, то есть. 1 - 12 . 1 соответствует одному часу (или утро или день). |
'M'
| '\u004d' | Минута в течение часа, отформатированного как две цифры с начальным нулем по мере необходимости, то есть. 00 - 59 . |
'S'
| '\u0053' | Секунды в течение минуты, отформатированной как две цифры с начальным нулем по мере необходимости, то есть. 00 - 60 ("60 "специальное значение, требуемое поддерживать секунды прыжка). |
'L'
| '\u004c' | Миллисекунда в пределах второго, отформатированного как три цифры с начальными нулями по мере необходимости, то есть. 000 - 999 . |
'N'
| '\u004e' | Наносекунда в пределах второго, отформатированного как девять цифр с начальными нулями по мере необходимости, то есть. 000000000 - 999999999 . Точность этого значения ограничивается разрешением базовой операционной системы или аппаратных средств. |
'p'
| '\u0070' | Специфичный для локали маркер утра или дня в нижнем регистре, например,"am "или"pm ". Использование префикса преобразования 'T' силы этот вывод к верхнему регистру. (Отметьте это 'p' производит строчный вывод. Это отличается от GNU date и POSIX strftime(3c) которые производят вывод верхнего регистра.) |
'z'
| '\u007a' | Стиль -0800 . Это значение будет скорректировано по мере необходимости в течение Летнего времени. Для long , Long , и Date используемый часовой пояс является часовым поясом значения по умолчанию для этого экземпляра виртуальной машины Java. |
'Z'
| '\u005a' | Строка, представляющая сокращение для часового пояса. Это значение будет скорректировано по мере необходимости в течение Летнего времени. Для long , Long , и Date используемый часовой пояс является часовым поясом значения по умолчанию для этого экземпляра виртуальной машины Java. Локаль Средства форматирования заменит локаль параметра (если любой). |
's'
| '\u0073' | Секунды с начала эпохи, запускающейся 1 января 1970 00:00:00 UTC, то есть. Long.MIN_VALUE/1000 к Long.MAX_VALUE/1000 . |
'Q'
| '\u004f' | Миллисекунды с начала эпохи, запускающейся 1 января 1970 00:00:00 UTC, то есть. Long.MIN_VALUE к Long.MAX_VALUE . Точность этого значения ограничивается разрешением базовой операционной системы или аппаратных средств. |
Следующие символы преобразования используются для того, чтобы отформатировать даты:
'B'
| '\u0042' | Специфичное для локали полное имя месяца, например. "January" , "February" . |
'b'
| '\u0062' | Специфичное для локали сокращенное имя месяца, например. "Jan" , "Feb" . |
'h'
| '\u0068' | То же самое как 'b' . |
'A'
| '\u0041' | Специфичное для локали полное имя дня недели, например. "Sunday" , "Monday"
|
'a'
| '\u0061' | Специфичное для локали краткое название дня недели, например. "Sun" , "Mon"
|
'C'
| '\u0043' | Год из четырех знаков, разделенный на 100 , отформатированный как две цифры с начальным нулем по мере необходимости, то есть. 00 - 99
|
'Y'
| '\u0059' | Год, отформатированный по крайней мере к четырем цифрам с начальными нулями по мере необходимости, например. 0092 равняется 92 CE для Григорианского календаря. |
'y'
| '\u0079' | Последние две цифры года, отформатированного с начальными нулями по мере необходимости, то есть. 00 - 99 . |
'j'
| '\u006a' | День года, отформатированного как три цифры с начальными нулями по мере необходимости, например. 001 - 366 для Григорианского календаря. 001 соответствует первому дню года. |
'm'
| '\u006d' | Месяц, отформатированный как две цифры с начальными нулями по мере необходимости, то есть. 01 - 13 , где"01 "первый месяц года и ("13 "специальное значение, требуемое поддерживать лунные календари). |
'd'
| '\u0064' | День месяца, отформатированного как две цифры с начальными нулями по мере необходимости, то есть. 01 - 31 , где"01 "первый день месяца. |
'e'
| '\u0065' | День месяца, отформатированного как две цифры, то есть. 1 - 31 где"1 "первый день месяца. |
Следующие символы преобразования используются для того, чтобы отформатировать общие составы даты/времени.
'R'
| '\u0052' | Время, отформатированное для 24-часовых часов как "%tH:%tM"
|
'T'
| '\u0054' | Время, отформатированное для 24-часовых часов как "%tH:%tM:%tS" . |
'r'
| '\u0072' | Время, отформатированное для 12-часовых часов как "%tI:%tM:%tS %Tp" . Расположение маркера утра или дня ('%Tp' ) может быть зависимым от локали. |
'D'
| '\u0044' | Дата, отформатированная как "%tm/%td/%ty" . |
'F'
| '\u0046' | "%tY-%tm-%td" . |
'c'
| '\u0063' | Дата и время, отформатированное как "%ta %tb %td %tT %tZ %tY" , например. "Sun Jul 20 16:17:00 EDT 1969" . |
'-'
флаг, определенный для Общих преобразований, применяется. Если '#'
флаг дается, тогда a FormatFlagsConversionMismatchException
будет брошен.
width является минимальным числом символов, которые будут записаны выводу. Если длина преобразованного значения является меньше чем width
тогда вывод будет дополнен пробелами ('\u0020'), пока общее количество символов не будет равняться width. Дополнение слева по умолчанию. Если '-'
флаг дается тогда, дополнение будет справа. Если width не определяется тогда нет никакого минимума.
Точность не применима. Если точность определяется тогда IllegalFormatPrecisionException
будет брошен.
Преобразование не соответствует никакому параметру.
'%'
| Результатом является литерал '%' ('\u0025') width является минимальным числом символов, которые будут записаны выводу включая Точность не применима. Если точность определяется |
Преобразование не соответствует никакому параметру.
'n'
| специфичный для платформы разделитель строки как возвращено System.getProperty("line.separator") . |
Флаги, width, и точность не применимы. Если кому-либо предоставляют IllegalFormatFlagsException
, IllegalFormatWidthException
, и IllegalFormatPrecisionException
, соответственно будет брошен.
Спецификаторы формата могут сослаться на параметры тремя способами:
1$
", второе"2$
", и т.д. На параметр можно сослаться не раз. Например:
formatter.format("%4$s %3$s %2$s %1$s %4$s %3$s %2$s %1$s", "a", "b", "c", "d") // -> "d c b a d c b a"
'<'
Флаг ('\u003c'), который заставляет параметр за предыдущий спецификатор формата быть снова использованным. Если нет никакого предыдущего параметра, то a MissingFormatArgumentException
бросается. formatter.format("%s %s %<s %<s", "a", "b", "c", "d") // -> "a b b b" // "c" and "d" are ignored because they are not referenced
'<'
флаг. Каждый спецификатор формата, который использует обычную индексацию, присваивается, последовательное неявное индексирует в список параметров, который независим от индексов, используемых явной или относительной индексацией. formatter.format("%s %s %s %s", "a", "b", "c", "d") // -> "a b c d"
Возможно иметь строку формата, которая использует все формы индексации, например:
formatter.format("%2$s %s %<s %s", "a", "b", "c", "d") // -> "b a a b" // "c" and "d" are ignored because they are not referenced
Максимальное количество параметров ограничивается максимальной размерностью массива Java как определено Спецификацией Виртуальной машины Java™. Если параметр индексирует, не соответствует доступному параметру, то a MissingFormatArgumentException
бросается.
Если есть больше параметров чем спецификаторы формата, дополнительные параметры игнорируются.
Если иначе не определено, передавая a null
параметр любому методу или конструктору в этом class вызовет a NullPointerException
быть брошенным.
Модификатор и Тип | Класс и Описание |
---|---|
static class |
Средство форматирования. BigDecimalLayoutForm |
Конструктор и Описание |
---|
Formatter()
Создает новое средство форматирования.
|
Formatter(Appendable a)
Создает новое средство форматирования с указанным местом назначения.
|
Formatter(Appendable a, Locale l)
Создает новое средство форматирования с указанным местом назначения и локалью.
|
Formatter(File file)
Создает новое средство форматирования с указанным файлом.
|
Formatter(File file, String csn)
Создает новое средство форматирования с указанным файлом и набором символов.
|
Formatter(File file, String csn, Locale l)
Создает новое средство форматирования с указанным файлом, набором символов, и локалью.
|
Formatter(Locale l)
Создает новое средство форматирования с указанной локалью.
|
Formatter(OutputStream os)
Создает новое средство форматирования с указанным потоком вывода.
|
Formatter(OutputStream os, String csn)
Создает новое средство форматирования с указанным потоком вывода и набором символов.
|
Formatter(OutputStream os, String csn, Locale l)
Создает новое средство форматирования с указанным потоком вывода, набором символов, и локалью.
|
Formatter(PrintStream ps)
Создает новое средство форматирования с указанным потоком печати.
|
Formatter(String fileName)
Создает новое средство форматирования с указанным именем файла.
|
Formatter(String fileName, String csn)
Создает новое средство форматирования с указанным именем файла и набором символов.
|
Formatter(String fileName, String csn, Locale l)
Создает новое средство форматирования с указанным именем файла, набором символов, и локалью.
|
Модификатор и Тип | Метод и Описание |
---|---|
void |
close()
Завершения это средство форматирования.
|
void |
flush()
Сбросы это средство форматирования.
|
Средство форматирования |
format(Locale l, String format, Object... args)
Пишет отформатированная строка в место назначения этого объекта, использующее указанную локаль, строку формата, и параметры.
|
Средство форматирования |
format(String format, Object... args)
Пишет отформатированная строка в место назначения этого объекта, использующее указанную строку формата и параметры.
|
IOException |
ioException()
Возвраты
IOException последний брошенный этим средством форматирования Appendable . |
Локаль |
locale()
Возвращает локаль, установленную конструкцией этого средства форматирования.
|
Appendable |
out()
Возвращает место назначения для вывода.
|
Строка |
toString()
Возвращает результат вызова
toString() на месте назначения для вывода. |
public Formatter()
Место назначения отформатированного вывода является a StringBuilder
который может быть получен, вызывая out()
и чей текущий контент может быть преобразован в строку, вызывая toString()
. Используемая локаль является локалью значения по умолчанию для того, чтобы отформатировать для этого экземпляра виртуальной машины Java.
public Formatter(Appendable a)
Используемая локаль является локалью значения по умолчанию для того, чтобы отформатировать для этого экземпляра виртуальной машины Java.
a
- Место назначения для отформатированного вывода. Если a
null
тогда a StringBuilder
будет создаваться.public Formatter(Locale l)
Место назначения отформатированного вывода является a StringBuilder
который может быть получен, вызывая out()
и чей текущий контент может быть преобразован в строку, вызывая toString()
.
l
- Локаль, чтобы применяться во время форматирования. Если l
null
тогда никакая локализация не применяется.public Formatter(Appendable a, Locale l)
a
- Место назначения для отформатированного вывода. Если a
null
тогда a StringBuilder
будет создаваться.l
- Локаль, чтобы применяться во время форматирования. Если l
null
тогда никакая локализация не применяется.public Formatter(String fileName) throws FileNotFoundException
Используемый набор символов является набором символов значения по умолчанию для этого экземпляра виртуальной машины Java.
Используемая локаль является локалью значения по умолчанию для того, чтобы отформатировать для этого экземпляра виртуальной машины Java.
fileName
- Имя файла, чтобы использовать в качестве места назначения этого средства форматирования. Если файл будет существовать тогда, то это будет усеченным, чтобы обнулить размер; иначе, новый файл будет создаваться. Вывод будет записан файлу и буферизуется.SecurityException
- Если менеджер безопасности присутствует и checkWrite(fileName)
отрицает доступ для записи к файлуFileNotFoundException
- Если данное имя файла не обозначает существующий, перезаписываемый регулярный файл, и новый регулярный файл того имени не может быть создан, или если некоторая другая ошибка происходит, открываясь или создавая файлpublic Formatter(String fileName, String csn) throws FileNotFoundException, UnsupportedEncodingException
Используемая локаль является локалью значения по умолчанию для того, чтобы отформатировать для этого экземпляра виртуальной машины Java.
fileName
- Имя файла, чтобы использовать в качестве места назначения этого средства форматирования. Если файл будет существовать тогда, то это будет усеченным, чтобы обнулить размер; иначе, новый файл будет создаваться. Вывод будет записан файлу и буферизуется.csn
- Имя поддерживаемого набора символовFileNotFoundException
- Если данное имя файла не обозначает существующий, перезаписываемый регулярный файл, и новый регулярный файл того имени не может быть создан, или если некоторая другая ошибка происходит, открываясь или создавая файлSecurityException
- Если менеджер безопасности присутствует и checkWrite(fileName)
отрицает доступ для записи к файлуUnsupportedEncodingException
- Если именованный набор символов не поддерживаетсяpublic Formatter(String fileName, String csn, Locale l) throws FileNotFoundException, UnsupportedEncodingException
fileName
- Имя файла, чтобы использовать в качестве места назначения этого средства форматирования. Если файл будет существовать тогда, то это будет усеченным, чтобы обнулить размер; иначе, новый файл будет создаваться. Вывод будет записан файлу и буферизуется.csn
- Имя поддерживаемого набора символовl
- Локаль, чтобы применяться во время форматирования. Если l
null
тогда никакая локализация не применяется.FileNotFoundException
- Если данное имя файла не обозначает существующий, перезаписываемый регулярный файл, и новый регулярный файл того имени не может быть создан, или если некоторая другая ошибка происходит, открываясь или создавая файлSecurityException
- Если менеджер безопасности присутствует и checkWrite(fileName)
отрицает доступ для записи к файлуUnsupportedEncodingException
- Если именованный набор символов не поддерживаетсяpublic Formatter(File file) throws FileNotFoundException
Используемый набор символов является набором символов значения по умолчанию для этого экземпляра виртуальной машины Java.
Используемая локаль является локалью значения по умолчанию для того, чтобы отформатировать для этого экземпляра виртуальной машины Java.
file
- Файл, чтобы использовать в качестве места назначения этого средства форматирования. Если файл будет существовать тогда, то это будет усеченным, чтобы обнулить размер; иначе, новый файл будет создаваться. Вывод будет записан файлу и буферизуется.SecurityException
- Если менеджер безопасности присутствует и checkWrite(file.getPath())
отрицает доступ для записи к файлуFileNotFoundException
- Если данный объект файла не обозначает существующий, перезаписываемый регулярный файл, и новый регулярный файл того имени не может быть создан, или если некоторая другая ошибка происходит, открываясь или создавая файлpublic Formatter(File file, String csn) throws FileNotFoundException, UnsupportedEncodingException
Используемая локаль является локалью значения по умолчанию для того, чтобы отформатировать для этого экземпляра виртуальной машины Java.
file
- Файл, чтобы использовать в качестве места назначения этого средства форматирования. Если файл будет существовать тогда, то это будет усеченным, чтобы обнулить размер; иначе, новый файл будет создаваться. Вывод будет записан файлу и буферизуется.csn
- Имя поддерживаемого набора символовFileNotFoundException
- Если данный объект файла не обозначает существующий, перезаписываемый регулярный файл, и новый регулярный файл того имени не может быть создан, или если некоторая другая ошибка происходит, открываясь или создавая файлSecurityException
- Если менеджер безопасности присутствует и checkWrite(file.getPath())
отрицает доступ для записи к файлуUnsupportedEncodingException
- Если именованный набор символов не поддерживаетсяpublic Formatter(File file, String csn, Locale l) throws FileNotFoundException, UnsupportedEncodingException
file
- Файл, чтобы использовать в качестве места назначения этого средства форматирования. Если файл будет существовать тогда, то это будет усеченным, чтобы обнулить размер; иначе, новый файл будет создаваться. Вывод будет записан файлу и буферизуется.csn
- Имя поддерживаемого набора символовl
- Локаль, чтобы применяться во время форматирования. Если l
null
тогда никакая локализация не применяется.FileNotFoundException
- Если данный объект файла не обозначает существующий, перезаписываемый регулярный файл, и новый регулярный файл того имени не может быть создан, или если некоторая другая ошибка происходит, открываясь или создавая файлSecurityException
- Если менеджер безопасности присутствует и checkWrite(file.getPath())
отрицает доступ для записи к файлуUnsupportedEncodingException
- Если именованный набор символов не поддерживаетсяpublic Formatter(PrintStream ps)
Используемая локаль является локалью значения по умолчанию для того, чтобы отформатировать для этого экземпляра виртуальной машины Java.
Символы пишутся данному PrintStream
возразите и поэтому кодируются, используя что набор символов объекта.
ps
- Поток, чтобы использовать в качестве места назначения этого средства форматирования.public Formatter(OutputStream os)
Используемый набор символов является набором символов значения по умолчанию для этого экземпляра виртуальной машины Java.
Используемая локаль является локалью значения по умолчанию для того, чтобы отформатировать для этого экземпляра виртуальной машины Java.
os
- Поток вывода, чтобы использовать в качестве места назначения этого средства форматирования. Вывод будет буферизован.public Formatter(OutputStream os, String csn) throws UnsupportedEncodingException
Используемая локаль является локалью значения по умолчанию для того, чтобы отформатировать для этого экземпляра виртуальной машины Java.
os
- Поток вывода, чтобы использовать в качестве места назначения этого средства форматирования. Вывод будет буферизован.csn
- Имя поддерживаемого набора символовUnsupportedEncodingException
- Если именованный набор символов не поддерживаетсяpublic Formatter(OutputStream os, String csn, Locale l) throws UnsupportedEncodingException
os
- Поток вывода, чтобы использовать в качестве места назначения этого средства форматирования. Вывод будет буферизован.csn
- Имя поддерживаемого набора символовl
- Локаль, чтобы применяться во время форматирования. Если l
null
тогда никакая локализация не применяется.UnsupportedEncodingException
- Если именованный набор символов не поддерживаетсяpublic Locale locale()
format
метод для этого объекта, у которого есть параметр локали, не изменяет это значение.
null
если никакая локализация не применяется, иначе локальFormatterClosedException
- Если это средство форматирования было закрыто, вызывая close()
методpublic Appendable out()
FormatterClosedException
- Если это средство форматирования было закрыто, вызывая close()
методpublic String toString()
toString()
на месте назначения для вывода. Например, следующий код форматирует текст в a StringBuilder
тогда получает результирующую строку: Formatter f = new Formatter(); f.format("Last reboot at %tc", lastRebootDate); String s = f.toString(); // -> s == "Last reboot at Sat Jan 01 00:00:00 PST 2000"
Вызов этого метода ведет себя точно таким же образом как вызов
out().toString()
В зависимости от спецификации toString
для Appendable
, возвращенная строка может или, возможно, не содержит символы, записанные месту назначения. Например, буферы обычно возвращают свое содержание в toString()
, но потоки не могут начиная с данных отбрасываться.
toString
в class Object
toString()
на месте назначения для выводаFormatterClosedException
- Если это средство форматирования было закрыто, вызывая close()
методpublic void flush()
Flushable
интерфейс, flush
метод будет вызван. Сбрасывание средства форматирования пишет любой буферизованный вывод в месте назначения к базовому потоку.
flush
в интерфейсе Flushable
FormatterClosedException
- Если это средство форматирования было закрыто, вызывая close()
методpublic void close()
Closeable
интерфейс, close
метод будет вызван. Закрытие средства форматирования позволяет этому высвобождать средства, которые это может содержать (такие как открытые файлы). Если средство форматирования уже закрывается, то вызов этого метода не имеет никакого эффекта.
Попытка вызвать любые методы кроме ioException()
в этом средстве форматирования после того, как это было закрыто, приведет к a FormatterClosedException
.
close
в интерфейсе Closeable
close
в интерфейсе AutoCloseable
public IOException ioException()
IOException
последний брошенный этим средством форматирования Appendable
. Если место назначения append()
метод никогда не бросает IOException
, тогда этот метод будет всегда возвращаться null
.
null
если никакое такое исключение не существует.public Formatter format(String format, Object... args)
format
- Строка формата как описано в Формате представляет синтаксис в виде строки.args
- На параметры ссылаются спецификаторы формата в строке формата. Если есть больше параметров чем спецификаторы формата, дополнительные параметры игнорируются. Максимальное количество параметров ограничивается максимальной размерностью массива Java как определено Спецификацией Виртуальной машины Java™.IllegalFormatException
- Если строка формата содержит недопустимый синтаксис, спецификатор формата, который является несовместимым с данными параметрами, недостаточные параметры, данные строку формата, или другие недопустимые условия. Для спецификации всех возможных ошибок форматирования см. раздел Деталей спецификации средства форматирования class.FormatterClosedException
- Если это средство форматирования было закрыто, вызывая close()
методpublic Formatter format(Locale l, String format, Object... args)
l
- Локаль, чтобы применяться во время форматирования. Если l
null
тогда никакая локализация не применяется. Это не изменяет локаль этого объекта, которая была установлена во время конструкции.format
- Строка формата как описано в Формате представляет синтаксис в виде строкиargs
- На параметры ссылаются спецификаторы формата в строке формата. Если есть больше параметров чем спецификаторы формата, дополнительные параметры игнорируются. Максимальное количество параметров ограничивается максимальной размерностью массива Java как определено Спецификацией Виртуальной машины Java™.IllegalFormatException
- Если строка формата содержит недопустимый синтаксис, спецификатор формата, который является несовместимым с данными параметрами, недостаточные параметры, данные строку формата, или другие недопустимые условия. Для спецификации всех возможных ошибок форматирования см. раздел Деталей спецификации средства форматирования class.FormatterClosedException
- Если это средство форматирования было закрыто, вызывая close()
метод
Для дальнейшей ссылки API и документации разработчика, см. Java Документация SE. Та документация содержит более подробные, предназначенные разработчиком описания, с концептуальными краткими обзорами, определениями сроков, обходных решений, и рабочих примеров кода.
Авторское право © 1993, 2013, Oracle и/или его филиалы. Все права защищены.
Проект сборка-b92