Java PrintStream (con ejemplos)

En este tutorial, aprenderemos sobre la clase Java PrintStream y sus métodos print () y printf () con la ayuda de ejemplos.

La PrintStreamclase del java.iopaquete 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, PrintStreamconvierte 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 PrintStreamclase 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 PrintStreamclase 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.PrintStreamprimero 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 PrintStreamdatos 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 Charsetclase 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 PrintStreamclase proporciona varios métodos que nos permiten imprimir datos en la salida.

método print ()

  • print() : imprime los datos especificados en el flujo de salida
  • println() : 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 PrintStreamclase.

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 / salida
  • outes una variable de clase de PrintStreamtipo declarado en Systemclase

Ahora que outes de PrintStreamtipo, podemos usarlo para llamar a todos los métodos de PrintStreamclase.

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).

Articulos interesantes...