En este tutorial, aprenderemos sobre la clase Java PrintStream y sus métodos print () y printf () con la ayuda de ejemplos.
La PrintStream
clase del java.io
paquete se puede usar para escribir datos de salida en forma comúnmente legible (texto) en lugar de bytes.
Extiende la clase abstracta OutputStream
.
Trabajo de PrintStream
A diferencia de otros flujos de salida, PrintStream
convierte los datos primitivos (entero, carácter) al formato de texto en lugar de bytes. Luego escribe esos datos formateados en el flujo de salida.
Y también, la PrintStream
clase no lanza ninguna excepción de entrada / salida. En su lugar, necesitamos usar el checkError()
método para encontrar cualquier error en él.
Nota : La PrintStream
clase también tiene una función de descarga automática. Esto significa que obliga al flujo de salida a escribir todos los datos en el destino en una de las siguientes condiciones:
- si el carácter de nueva línea
está escrito en el flujo de impresión
- si
println()
se invoca el método - si se escribe una matriz de bytes en el flujo de impresión
Crear un PrintStream
Para crear un PrintStream
, java.io.PrintStream
primero debemos importar el paquete. Una vez que importamos el paquete, aquí es cómo podemos crear el flujo de impresión.
1. Uso de otros flujos de salida
// Creates a FileOutputStream FileOutputStream file = new FileOutputStream(String file); // Creates a PrintStream PrintStream output = new PrintStream(file, autoFlush);
Aquí,
- hemos creado un flujo de impresión que escribirá datos formateados en el archivo representado por
FileOutputStream
- el autoFlush es un parámetro booleano opcional que especifica si se debe realizar el lavado automático o no
2. Usando el nombre de archivo
// Creates a PrintStream PrintStream output = new PrintStream(String file, boolean autoFlush);
Aquí,
- hemos creado un flujo de impresión que escribirá datos formateados en el archivo especificado
- autoFlush es un parámetro booleano opcional que especifica si se debe realizar la descarga automática o no
Nota : En ambos casos, los PrintStream
datos de escritura en el archivo utilizando alguna codificación de caracteres predeterminada. Sin embargo, también podemos especificar la codificación de caracteres ( UTF8 o UTF16 ).
// Creates a PrintStream using some character encoding PrintStream output = new PrintStream(String file, boolean autoFlush, Charset cs);
Aquí, hemos utilizado la Charset
clase para especificar la codificación de caracteres. Para obtener más información, visite Java Charset (documentación oficial de Java).
Métodos de PrintStream
La PrintStream
clase proporciona varios métodos que nos permiten imprimir datos en la salida.
método print ()
print()
: imprime los datos especificados en el flujo de salidaprintln()
: imprime los datos en el flujo de salida junto con un carácter de nueva línea al final
Ejemplo: método print () con clase System
class Main ( public static void main(String() args) ( String data = "Hello World."; System.out.print(data); ) )
Salida
Hola Mundo.
En el ejemplo anterior, no hemos creado un flujo de impresión. Sin embargo, podemos usar el print()
método de la PrintStream
clase.
Quizás se pregunte cómo es esto posible. Bueno, déjame explicarte lo que está pasando aquí.
Note la línea,
System.out.print(data);
Aquí,
System
es una clase final que es responsable de realizar la operación estándar de entrada / salidaout
es una variable de clase dePrintStream
tipo declarado enSystem
clase
Ahora que out
es de PrintStream
tipo, podemos usarlo para llamar a todos los métodos de PrintStream
clase.
Ejemplo: método print () con la clase PrintStream
import java.io.PrintStream; class Main ( public static void main(String() args) ( String data = "This is a text inside the file."; try ( PrintStream output = new PrintStream("output.txt"); output.print(data); output.close(); ) catch(Exception e) ( e.getStackTrace(); ) ) )
En el ejemplo anterior, hemos creado un flujo de impresión denominado salida. El flujo de impresión está vinculado con el archivo output.txt .
PrintStream output = new PrintStream("output.txt");
Para imprimir datos en el archivo, hemos utilizado el print()
método.
Aquí, cuando ejecutamos el programa, el archivo output.txt se llena con el siguiente contenido.
This is a text inside the file.
Método printf ()
El printf()
método se puede utilizar para imprimir la cadena formateada. Incluye 2 parámetros: cadena formateada y argumentos. Por ejemplo,
printf("I am %d years old", 25);
Aquí,
- Tengo% d años es una cadena formateada
- % d son datos enteros en la cadena formateada
- 25 es un argumento
La cadena formateada incluye tanto texto como datos. Y los argumentos reemplazan los datos dentro de la cadena formateada.
Por tanto, % d se sustituye por 25 .
Ejemplo: método printf () usando PrintStream
import java.io.PrintStream; class Main ( public static void main(String() args) ( try ( PrintStream output = new PrintStream("output.txt"); int age = 25; output.printf("I am %d years old.", age); output.close(); ) catch(Exception e) ( e.getStackTrace(); ) ) )
En el ejemplo anterior, hemos creado un flujo de impresión denominado salida. El flujo de impresión está vinculado con el archivo output.txt .
PrintStream output = new PrintStream("output.txt");
Para imprimir el texto formateado en el archivo, hemos utilizado el printf()
método.
Aquí, cuando ejecutamos el programa, el archivo output.txt se llena con el siguiente contenido.
I am 25 years old.
Otros métodos de PrintStream
Métodos | Descripciones |
---|---|
close() | cierra el flujo de impresión |
checkError() | comprueba si hay un error en la secuencia y devuelve un resultado booleano |
append() | agrega los datos especificados a la secuencia |
Para obtener más información, visite Java PrintStream (documentación oficial de Java).