Clase Java OutputStreamWriter
Clase Java OutputStreamWriter
En este tutorial, aprenderemos sobre Java OutputStreamWriter y sus métodos con la ayuda de ejemplos.
El OutputStreamWriter
clase del java.io
El paquete se puede utilizar para convertir datos en formato de caracteres en datos en formato de bytes.
Extiende la clase abstracta Writer
.
El OutputStreamWriter
la clase funciona con otros flujos de salida. También se conoce como un puente entre flujos de bytes y flujos de caracteres. Esto se debe a que el OutputStreamWriter
convierte sus caracteres en bytes.
Por ejemplo, algunos caracteres requieren 2 bytes para almacenarse en el almacenamiento. Para escribir dichos 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
, debemos importar el java.io.OutputStreamWriter
paquete primero. 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 un OutputStreamWriter
salida con nombre junto con el FileOutputStream
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 el Charset
class para especificar el tipo de codificación de caracteres.
Métodos de OutputStreamWriter
El OutputStreamWriter
La clase proporciona implementaciones para diferentes métodos presentes en el Writer
clase.
método escribir()
write()
- escribe un solo carácter al escritorwrite(char[] array)
- escribe los caracteres de la matriz especificada al escritorwrite(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 usando el flujo de salida del archivo. El lector de flujo de salida está vinculado con output.txt archivo.
FileOutputStream file = new FileOutputStream("output.txt");
OutputStreamWriter output = new OutputStreamWriter(file);
Para escribir datos en el archivo, hemos utilizado el write()
método.
Aquí, cuando ejecutamos el programa, el output.txt El archivo está lleno con el siguiente contenido.
This is a line of text inside the file.
Método getEncoding()
El getEncoding()
El método se puede usar para obtener el tipo de codificación que se usa 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
The character encoding of output1: Cp1252 The character encoding of output2: UTF8
En el ejemplo anterior, hemos creado 2 escritores de flujo de salida llamados output1 y salida2 .
- salida1 no especifica la codificación de caracteres. De ahí el
getEncoding()
El método devuelve la codificación de caracteres predeterminada. - salida2 especifica la codificación de caracteres, UTF8 . De ahí el
getEncoding()
El 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 cerrar()
Para cerrar el escritor de flujo de salida, podemos usar el close()
método. Una vez que el close()
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 al 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).
Java