Java OutputStreamWriter (con ejemplos)

En este tutorial, aprenderemos sobre Java OutputStreamWriter y sus métodos con la ayuda de ejemplos.

La OutputStreamWriterclase del java.iopaquete se puede utilizar para convertir datos en forma de caracteres en datos en forma de bytes.

Extiende la clase abstracta Writer.

La OutputStreamWriterclase funciona con otros flujos de salida. También se conoce como puente entre flujos de bytes y flujos de caracteres. Esto se debe a que OutputStreamWriterconvierte sus caracteres en bytes.

Por ejemplo, algunos caracteres requieren 2 bytes para almacenarse en el almacenamiento. Para escribir tales datos, podemos usar el escritor de flujo de salida que convierte el carácter en los bytes correspondientes y almacena los bytes juntos.

Crear un OutputStreamWriter

Para crear un OutputStreamWriter, java.io.OutputStreamWriterprimero debemos importar el paquete. Una vez que importamos el paquete, aquí es cómo podemos crear el escritor de flujo de salida.

 // Creates an OutputStream FileOutputStream file = new FileOutputStream(String path); // Creates an OutputStreamWriter OutputStreamWriter output = new OutputStreamWriter(file); 

En el ejemplo anterior, hemos creado una OutputStreamWritersalida con FileOutputStreamnombre junto con el archivo con nombre.

Aquí, estamos usando la codificación de caracteres predeterminada para escribir caracteres en el flujo de salida.

Sin embargo, podemos especificar el tipo de codificación de caracteres ( UTF8 o UTF16 ) que se utilizará para escribir datos.

 // Creates an OutputStreamWriter specifying the character encoding OutputStreamWriter output = new OutputStreamWriter(file, Charset cs); 

Aquí, hemos utilizado la Charsetclase para especificar el tipo de codificación de caracteres.

Métodos de OutputStreamWriter

La OutputStreamWriterclase proporciona implementaciones para diferentes métodos presentes en la Writerclase.

método de escritura

  • write() - escribe un solo carácter al escritor
  • write(char() array) - escribe los caracteres de la matriz especificada al escritor
  • write(String data) - escribe la cadena especificada al escritor

Ejemplo: OutputStreamWriter para escribir datos en un archivo

 import java.io.FileOutputStream; import java.io.OutputStreamWriter; public class Main ( public static void main(String args()) ( String data = "This is a line of text inside the file."; try ( // Creates a FileOutputStream FileOutputStream file = new FileOutputStream("output.txt"); // Creates an OutputStreamWriter OutputStreamWriter output = new OutputStreamWriter(file); // Writes string to the file output.write(data); // Closes the writer output.close(); ) catch (Exception e) ( e.getStackTrace(); ) ) ) 

En el ejemplo anterior, hemos creado un lector de flujo de salida utilizando el flujo de salida del archivo. El lector de flujo de salida está vinculado con el archivo output.txt .

 FileOutputStream file = new FileOutputStream("output.txt"); OutputStreamWriter output = new OutputStreamWriter(file); 

Para escribir datos en el archivo, usamos el write()método.

Aquí, cuando ejecutamos el programa, el archivo output.txt se llena con el siguiente contenido.

 This is a line of text inside the file. 

Método getEncoding ()

El getEncoding()método se puede utilizar para obtener el tipo de codificación que se utiliza para escribir datos en el flujo de salida. Por ejemplo,

 import java.io.OutputStreamWriter; import java.nio.charset.Charset; import java.io.FileOutputStream; class Main ( public static void main(String() args) ( try ( // Creates an output stream FileOutputStream file = new FileOutputStream("output.txt"); // Creates an output stream reader with default encoding OutputStreamWriter output1 = new OutputStreamWriter(file); // Creates an output stream reader specifying the encoding OutputStreamWriter output2 = new OutputStreamWriter(file, Charset.forName("UTF8")); // Returns the character encoding of the output stream System.out.println("Character encoding of output1: " + output1.getEncoding()); System.out.println("Character encoding of output2: " + output2.getEncoding()); // Closes the reader output1.close(); output2.close(); ) catch(Exception e) ( e.getStackTrace(); ) ) ) 

Salida

 La codificación de caracteres de output1: Cp1252 La codificación de caracteres de output2: UTF8 

En el ejemplo anterior, hemos creado 2 escritores de flujo de salida llamados output1 y output2.

  • output1 no especifica la codificación de caracteres. Por lo tanto, el getEncoding()método devuelve la codificación de caracteres predeterminada.
  • output2 especifica la codificación de caracteres, UTF8 . Por lo tanto, el getEncoding()método devuelve la codificación de caracteres especificada.

Nota : hemos utilizado el Charset.forName()método para especificar el tipo de codificación de caracteres. Para obtener más información, visite Java Charset (documentación oficial de Java).

Método close ()

Para cerrar el escritor de flujo de salida, podemos usar el close()método. Una vez close()que se llama al método, no podemos usar el escritor para escribir los datos.

Otros métodos de OutputStreamWriter

Método Descripción
flush() obliga a escribir todos los datos presentes en el escritor en el destino correspondiente
append() inserta el carácter especificado en el escritor actual

Para obtener más información, visite Java OutputStreamWriter (documentación oficial de Java).

Articulos interesantes...