Java : Formatter (String Syntax) con ejemplos

Formatter (Java SE 22 & JDK 22) en Java con ejemplos.
Encontrará ejemplos de código en la mayoría de los métodos de Formatter.

Nota :


Summary

Un intérprete para cadenas de formato de estilo printf. Esta clase proporciona compatibilidad con la justificación y alineación del diseño, formatos comunes para datos numéricos, de cadena y de fecha y hora, y salida específica de la configuración regional. (Traducción automática)

Class diagram

try (final var formatter = new Formatter()) {
    formatter.format("str = %s : num = %d", "abc", 1234);

    final var str = formatter.toString();
    System.out.println(str); // str = abc : num = 1234
}
try (final var formatter = new Formatter()) {
    final var value = "abc";
    formatter.format("%s : %S", value, value);

    final var str = formatter.toString();
    System.out.println(str); // abc : ABC
}

try (final var formatter = new Formatter()) {
    final var value = 'x';
    formatter.format("%c : %C", value, value);

    final var str = formatter.toString();
    System.out.println(str); // x : X
}

try (final var formatter = new Formatter()) {
    final var value = 255;
    formatter.format("%d : %x : %X", value, value, value);

    final var str = formatter.toString();
    System.out.println(str); // 255 : ff : FF
}

try (final var formatter = new Formatter()) {
    final var value = 0.12345;
    formatter.format("%e : %f", value, value);

    final var str = formatter.toString();
    System.out.println(str); // 1.234500e-01 : 0.123450
}
try (final var formatter = new Formatter()) {
    formatter.format("%1$d : %2$d : %3$d", 111, 222, 333);
    System.out.println(formatter); // 111 : 222 : 333
}

try (final var formatter = new Formatter()) {
    formatter.format("%3$d : %2$d : %1$d", 111, 222, 333);
    System.out.println(formatter); // 333 : 222 : 111
}

Constructors

Formatter ()

Construye un nuevo formateador. (Traducción automática)

try (final var formatter = new Formatter()) {
    formatter.format("%s : %d", "abc", 1234);
    System.out.println(formatter); // abc : 1234
}

Formatter (File file)

Construye un nuevo formateador con el archivo especificado. (Traducción automática)

final var file = Path.of("R:", "java-work", "aaa.txt");
System.out.println(file); // R:\java-work\aaa.txt

try (final var formatter = new Formatter(file.toFile())) {
    formatter.format("%s : %d", "abc", 1234);
}

System.out.println(Files.readString(file)); // abc : 1234

Formatter (File file, String csn)

Construye un nuevo formateador con el archivo y juego de caracteres especificados. (Traducción automática)

final var file = Path.of("R:", "java-work", "aaa.txt");
System.out.println(file); // R:\java-work\aaa.txt

final var csn = "Shift_JIS";

try (final var formatter = new Formatter(file.toFile(), csn)) {
    formatter.format("%s : %d", "○△×", 1234);
}

System.out.println(Files.readString(file, Charset.forName(csn))); // ○△× : 1234

Formatter (File file, String csn, Locale l)

Construye un nuevo formateador con el archivo, el conjunto de caracteres y la configuración regional especificados. (Traducción automática)

System.out.println(Locale.getDefault().toLanguageTag()); // en-US

final var file = Path.of("R:", "java-work", "aaa.txt");
System.out.println(file); // R:\java-work\aaa.txt

final var csn = StandardCharsets.UTF_8.name();
System.out.println(csn); // UTF-8

try (final var formatter = new Formatter(file.toFile(), csn)) {
    formatter.format("%tA", DayOfWeek.SUNDAY);
}
System.out.println(Files.readString(file, Charset.forName(csn))); // Sunday

try (final var formatter = new Formatter(file.toFile(), csn, Locale.JAPAN)) {
    formatter.format("%tA", DayOfWeek.SUNDAY);
}
System.out.println(Files.readString(file, Charset.forName(csn))); // 日曜日

Formatter (File file, Charset charset, Locale l)

Construye un nuevo formateador con el archivo, el conjunto de caracteres y la configuración regional especificados. (Traducción automática)

final var file = Path.of("R:", "java-work", "aaa.txt");
System.out.println(file); // R:\java-work\aaa.txt

final var charset = StandardCharsets.UTF_8;

try (final var formatter = new Formatter(file.toFile(), charset, Locale.US)) {
    formatter.format("%tA", DayOfWeek.SUNDAY);
}
System.out.println(Files.readString(file, charset)); // Sunday

try (final var formatter = new Formatter(file.toFile(), charset, Locale.JAPAN)) {
    formatter.format("%tA", DayOfWeek.SUNDAY);
}
System.out.println(Files.readString(file, charset)); // 日曜日

Formatter (OutputStream os)

Construye un nuevo formateador con el flujo de salida especificado. (Traducción automática)

final var os = new ByteArrayOutputStream();
try (final var formatter = new Formatter(os)) {
    formatter.format("%s : %d", "abc", 1234);
}

System.out.println(os); // abc : 1234

Formatter (OutputStream os, String csn)

Construye un nuevo formateador con el flujo de salida y el conjunto de caracteres especificados. (Traducción automática)

final var csn = "Shift_JIS";

final var os = new ByteArrayOutputStream();
try (final var formatter = new Formatter(os, csn)) {
    formatter.format("%s : %d", "○△×", 1234);
}

System.out.println(os.toString(csn)); // ○△× : 1234

Formatter (OutputStream os, String csn, Locale l)

Construye un nuevo formateador con el flujo de salida, el conjunto de caracteres y la configuración regional especificados. (Traducción automática)

System.out.println(Locale.getDefault().toLanguageTag()); // en-US

final var csn = StandardCharsets.UTF_8.name();
System.out.println(csn); // UTF-8

{
    final var os = new ByteArrayOutputStream();
    try (final var formatter = new Formatter(os, csn)) {
        formatter.format("%tA", DayOfWeek.SUNDAY);
    }
    System.out.println(os.toString(csn)); // Sunday
}
{
    final var os = new ByteArrayOutputStream();
    try (final var formatter = new Formatter(os, csn, Locale.JAPAN)) {
        formatter.format("%tA", DayOfWeek.SUNDAY);
    }
    System.out.println(os.toString(csn)); // 日曜日
}

Formatter (OutputStream os, Charset charset, Locale l)

Construye un nuevo formateador con el flujo de salida, el conjunto de caracteres y la configuración regional especificados. (Traducción automática)

final var charset = StandardCharsets.UTF_8;

final var os = new ByteArrayOutputStream();
try (final var formatter = new Formatter(os, charset, Locale.US)) {
    formatter.format("%tA", DayOfWeek.SUNDAY);
}
System.out.println(os.toString(charset)); // Sunday
final var charset = StandardCharsets.UTF_8;

final var os = new ByteArrayOutputStream();
try (final var formatter = new Formatter(os, charset, Locale.JAPAN)) {
    formatter.format("%tA", DayOfWeek.SUNDAY);
}
System.out.println(os.toString(charset)); // 日曜日

Formatter (PrintStream ps)

Construye un nuevo formateador con el flujo de impresión especificado. (Traducción automática)

final var out = new ByteArrayOutputStream();
try (final var ps = new PrintStream(out)) {

    try (final var formatter = new Formatter(ps)) {
        formatter.format("%s : %d", "abc", 1234);
    }
}

System.out.println(out); // abc : 1234

Formatter (Appendable a)

Construye un nuevo formateador con el destino especificado. (Traducción automática)

final var a = new StringBuilder();
try (final var formatter = new Formatter(a)) {
    formatter.format("%s : %d", "abc", 1234);
}

System.out.println(a); // abc : 1234

Formatter (Appendable a, Locale l)

Construye un nuevo formateador con el destino y la configuración regional especificados. (Traducción automática)

System.out.println(Locale.getDefault().toLanguageTag()); // en-US

{
    final var a = new StringBuilder();
    try (final var formatter = new Formatter(a)) {
        formatter.format("%tA", DayOfWeek.SUNDAY);
    }
    System.out.println(a); // Sunday
}
{
    final var a = new StringBuilder();
    try (final var formatter = new Formatter(a, Locale.JAPAN)) {
        formatter.format("%tA", DayOfWeek.SUNDAY);
    }
    System.out.println(a); // 日曜日
}

Formatter (String fileName)

Construye un nuevo formateador con el nombre de archivo especificado. (Traducción automática)

final var file = Path.of("R:", "java-work", "aaa.txt");
final var fileName = file.toString();
System.out.println(fileName); // R:\java-work\aaa.txt

try (final var formatter = new Formatter(fileName)) {
    formatter.format("%s : %d", "abc", 1234);
}

System.out.println(Files.readString(file)); // abc : 1234

Formatter (String fileName, String csn)

Construye un nuevo formateador con el nombre de archivo y el juego de caracteres especificados. (Traducción automática)

final var file = Path.of("R:", "java-work", "aaa.txt");
final var fileName = file.toString();
System.out.println(fileName); // R:\java-work\aaa.txt

final var csn = "Shift_JIS";

try (final var formatter = new Formatter(fileName, csn)) {
    formatter.format("%s : %d", "○△×", 1234);
}

System.out.println(Files.readString(file, Charset.forName(csn))); // ○△× : 1234

Formatter (String fileName, String csn, Locale l)

Construye un nuevo formateador con el nombre de archivo, el conjunto de caracteres y la configuración regional especificados. (Traducción automática)

System.out.println(Locale.getDefault().toLanguageTag()); // en-US

final var file = Path.of("R:", "java-work", "aaa.txt");
final var fileName = file.toString();
System.out.println(fileName); // R:\java-work\aaa.txt

final var csn = StandardCharsets.UTF_8.name();
System.out.println(csn); // UTF-8

try (final var formatter = new Formatter(fileName, csn)) {
    formatter.format("%tA", DayOfWeek.SUNDAY);
}
System.out.println(Files.readString(file, Charset.forName(csn))); // Sunday

try (final var formatter = new Formatter(fileName, csn, Locale.JAPAN)) {
    formatter.format("%tA", DayOfWeek.SUNDAY);
}
System.out.println(Files.readString(file, Charset.forName(csn))); // 日曜日

Formatter (String fileName, Charset charset, Locale l)

Construye un nuevo formateador con el nombre de archivo, el conjunto de caracteres y la configuración regional especificados. (Traducción automática)

final var file = Path.of("R:", "java-work", "aaa.txt");
final var fileName = file.toString();
System.out.println(fileName); // R:\java-work\aaa.txt

final var charset = StandardCharsets.UTF_8;

try (final var formatter = new Formatter(fileName, charset, Locale.US)) {
    formatter.format("%tA", DayOfWeek.SUNDAY);
}
System.out.println(Files.readString(file, charset)); // Sunday

try (final var formatter = new Formatter(fileName, charset, Locale.JAPAN)) {
    formatter.format("%tA", DayOfWeek.SUNDAY);
}
System.out.println(Files.readString(file, charset)); // 日曜日

Formatter (Locale l)

Construye un nuevo formateador con la configuración regional especificada. (Traducción automática)

try (final var formatter = new Formatter(Locale.US)) {
    formatter.format("%tA", DayOfWeek.SUNDAY);
    System.out.println(formatter); // Sunday
}

try (final var formatter = new Formatter(Locale.JAPAN)) {
    formatter.format("%tA", DayOfWeek.SUNDAY);
    System.out.println(formatter); // 日曜日
}

Methods

void close ()

Cierra este formateador. (Traducción automática)

final var file = Path.of("R:", "java-work", "aaa.txt");
System.out.println(file); // R:\java-work\aaa.txt

try (final var formatter = new Formatter(file.toFile())) {
    formatter.format("%s : %d", "abc", 1234);
}

System.out.println(Files.readString(file)); // abc : 1234
// An example without a try-with-resources statement.
final var file = Path.of("R:", "java-work", "aaa.txt");
System.out.println(file); // R:\java-work\aaa.txt

final var formatter = new Formatter(file.toFile());
try {
    formatter.format("%s : %d", "abc", 1234);
} finally {
    formatter.close();
}

System.out.println(Files.readString(file)); // abc : 1234

void flush ()

Limpia este formateador. (Traducción automática)

final var file = Path.of("R:", "java-work", "aaa.txt");
System.out.println(file); // R:\java-work\aaa.txt

try (final var formatter = new Formatter(file.toFile())) {

    formatter.format("abc");
    System.out.println(Files.readString(file).isEmpty()); // true

    formatter.flush();
    System.out.println(Files.readString(file)); // abc

    formatter.format("XYZ");
    System.out.println(Files.readString(file)); // abc
}

System.out.println(Files.readString(file)); // abcXYZ

Formatter format (String format, Object... args)

Escribe una cadena formateada en el destino de este objeto utilizando la cadena de formato y los argumentos especificados. (Traducción automática)

try (final var formatter = new Formatter()) {
    final var value = "abc";
    formatter.format("%s : %S", value, value);

    final var str = formatter.toString();
    System.out.println(str); // abc : ABC
}

try (final var formatter = new Formatter()) {
    final var value = 'x';
    formatter.format("%c : %C", value, value);

    final var str = formatter.toString();
    System.out.println(str); // x : X
}

try (final var formatter = new Formatter()) {
    final var value = 255;
    formatter.format("%d : %x : %X", value, value, value);

    final var str = formatter.toString();
    System.out.println(str); // 255 : ff : FF
}

try (final var formatter = new Formatter()) {
    final var value = 0.12345;
    formatter.format("%e : %f", value, value);

    final var str = formatter.toString();
    System.out.println(str); // 1.234500e-01 : 0.123450
}

Formatter format (Locale l, String format, Object... args)

Escribe una cadena formateada en el destino de este objeto utilizando la configuración regional, la cadena de formato y los argumentos especificados. (Traducción automática)

System.out.println(Locale.getDefault().toLanguageTag()); // en-US

try (final var formatter = new Formatter()) {
    formatter.format("%tA", DayOfWeek.SUNDAY);
    System.out.println(formatter); // Sunday
}

try (final var formatter = new Formatter()) {
    formatter.format(Locale.JAPAN, "%tA", DayOfWeek.SUNDAY);
    System.out.println(formatter); // 日曜日
}

IOException ioException ()

Devuelve la última IOException lanzada por el Appendable de este formateador. (Traducción automática)

try (final var formatter = new Formatter()) {

    formatter.format("%s : %d", "abc", 1234);
    System.out.println(formatter); // abc : 1234

    final var ret = formatter.ioException();
    System.out.println(ret); // null
}
final var file = Path.of("R:", "java-work", "aaa.txt");
System.out.println(file); // R:\java-work\aaa.txt

try (final var out = Files.newOutputStream(file);
     final var formatter = new Formatter(out)) {

    // Intentionally closes the out object to make an error.
    out.close();

    formatter.format("%s : %d", "abc", 1234);
    formatter.flush();

    final var ret = formatter.ioException();
    System.out.println(ret); // java.nio.channels.ClosedChannelException
}

Locale locale ()

Devuelve la configuración regional establecida por la construcción de este formateador. (Traducción automática)

System.out.println(Locale.getDefault().toLanguageTag()); // en-US

try (final var formatter = new Formatter()) {
    System.out.println(formatter.locale().toLanguageTag()); // en-US

    formatter.format("%tA", DayOfWeek.SUNDAY);
    System.out.println(formatter); // Sunday
}

try (final var formatter = new Formatter(Locale.JAPAN)) {
    System.out.println(formatter.locale().toLanguageTag()); // ja-JP

    formatter.format("%tA", DayOfWeek.SUNDAY);
    System.out.println(formatter); // 日曜日
}

Appendable out ()

Devuelve el destino de la salida. (Traducción automática)

try (final var formatter = new Formatter()) {
    final var out = formatter.out();
    System.out.println(out.getClass().getSimpleName()); // StringBuilder
}
try (final var formatter = new Formatter(new ByteArrayOutputStream())) {
    final var out = formatter.out();
    System.out.println(out.getClass().getSimpleName()); // BufferedWriter
}

String toString ()

Devuelve el resultado de invocar toString() en el destino de la salida. (Traducción automática)

try (final var formatter = new Formatter()) {
    final var value = "abc";
    formatter.format("%s : %S", value, value);

    final var str = formatter.toString();
    System.out.println(str); // abc : ABC
}

try (final var formatter = new Formatter()) {
    final var value = 'x';
    formatter.format("%c : %C", value, value);

    final var str = formatter.toString();
    System.out.println(str); // x : X
}

try (final var formatter = new Formatter()) {
    final var value = 255;
    formatter.format("%d : %x : %X", value, value, value);

    final var str = formatter.toString();
    System.out.println(str); // 255 : ff : FF
}

try (final var formatter = new Formatter()) {
    final var value = 0.12345;
    formatter.format("%e : %f", value, value);

    final var str = formatter.toString();
    System.out.println(str); // 1.234500e-01 : 0.123450
}

Related posts

To top of page