Clase FileWriter en Java

La clase Java FileWriter del paquete java.io se utiliza para escribir datos en forma de caracteres en un archivo. La clase Java FileWriter se utiliza para escribir datos orientados a caracteres en un archivo. Es una clase orientada a caracteres que se utiliza para el manejo de archivos en Java.

  • Esta clase hereda de la clase OutputStreamWriter que a su vez hereda de la clase Writer.
  • Los constructores de esta clase asumen que la codificación de caracteres predeterminada y el tamaño de búfer de bytes predeterminado son aceptables. Para especificar estos valores usted mismo, construya un OutputStreamWriter en un FileOutputStream .
  • FileWriter está diseñado para escribir secuencias de caracteres. Para escribir flujos de bytes sin procesar, considere usar un FileOutputStream.
  • FileWriter crea el archivo de salida si aún no está presente.

Jerarquía de la clase Java FileWriter

Hierarchy of Java FileWriter Class

FileWriter amplía las clases OutputStreamWriter y Writer . Implementa interfaces Closeable, Flushable, Appendable, AutoCloseable.

Declaración de clase de Java FileWriter

public class FileWriter extends OutputStreamWriter  

Constructores de la clase FileWriter

1. FileWriter(File file): Construye un objeto FileWriter dado un objeto File. Lanza una IOException si el archivo existe pero es un directorio en lugar de un archivo normal que no existe pero no se puede crear o no se puede abrir por cualquier otro motivo.

FileWriter fw = new FileWriter(File file);

2. FileWriter(File file, boolean append): Construye un objeto FileWriter dado un objeto File. Si el segundo argumento es verdadero, los bytes se escribirán al final del archivo en lugar de al principio. Lanza una IOException si el archivo existe pero es un directorio en lugar de un archivo normal o no existe pero no se puede crear o no se puede abrir por cualquier otro motivo.

FileWriter fw = new FileWriter(File file, boolean append);

3. FileWriter(FileDescriptor fd): Construye un objeto FileWriter asociado a un descriptor de archivo.

FileWriter fw = new FileWriter(FileDescriptor fd);

4. FileWriter (File file, Charset charset): construye el fileWriter cuando se proporciona el archivo y el juego de caracteres.

FileWriter fw = new FileWriter(File file, Charset charset);

5. FileWriter (File file, Charset charset, boolean append): construye el fileWriter cuando se proporciona el archivo y el juego de caracteres y un valor booleano que indica si se deben agregar los datos escritos o no.

FileWriter fw = new FileWriter(File file, Charset charset, boolean append);

6. FileWriter(String fileName): Construye un objeto FileWriter dado un nombre de archivo.

FileWriter fw = new FileWriter(String fileName);

7. FileWriter(String fileName, Boolean append): Construye un objeto FileWriter dado un nombre de archivo con un booleano que indica si agregar o no los datos escritos.

FileWriter fw = new FileWriter(String fileName, Boolean append);

8. FileWriter (String fileName, Charset juego de caracteres): construye un FileWriter cuando se proporciona un nombre de archivo y un juego de caracteres.

FileWriter fw = new FileWriter(String fileName, Charset charset);

9. FileWriter (String fileName, Charset charset, boolean append): construye un fileWriter cuando se proporciona un nombre de archivo y un juego de caracteres y una variable booleana que indica si se deben agregar datos o no.

FileWriter fw = new FileWriter(String fileName, Charset charset, boolean append);

Ejemplo:

Java

// Java program to create a text File using FileWriter
  
import java.io.FileWriter;
import java.io.IOException;
import java.util.*;
class GFG {
    public static void main(String[] args)
        throws IOException
    {
        // initialize a string
        String str = "ABC";
        try {
  
            // attach a file to FileWriter
            FileWriter fw
                = new FileWriter("D:/data/file.txt");
  
            // read each character from string and write
            // into FileWriter
            for (int i = 0; i < str.length(); i++)
                fw.write(str.charAt(i));
  
            System.out.println("Successfully written");
  
            // close the file
            fw.close();
        }
        catch (Exception e) {
            e.getStackTrace();
        }
    }
}

 Producción:

writing ABC string to a file

Sobrescribir vs Agregar el archivo

Al crear un FileWriter de Java, podemos decidir si queremos agregar el archivo a un archivo existente o si queremos sobrescribir cualquier archivo existente. Esto se puede decidir eligiendo el constructor apropiado. El constructor para sobrescribir cualquier archivo existente toma solo un parámetro que es un nombre de archivo.

Writer fileWriter = new FileWriter("c:\\data\\output.txt");

El constructor para agregar el archivo o sobrescribirlo toma dos parámetros, el nombre del archivo y una variable booleana que decide si agregar o sobrescribir el archivo.

Writer fileWriter = new FileWriter("c:\\data\\output.txt", true);  // appends to file
Writer fileWriter = new FileWriter("c:\\data\\output.txt", false); // overwrites file

Métodos básicos de la clase FileWriter

 1. Escribir()

  • write(int a): este método escribe un solo carácter especificado por int a.
  • write(String str, int pos, int length): este método escribe una parte de la string desde la posición pos hasta el número de caracteres de longitud .
  • write(char ch[], int pos, int length): este método escribe la posición de los caracteres de la array ch[] desde la posición pos hasta la longitud del número de caracteres.
  • write(char ch[]): este método escribe una array de caracteres especificados por ch[].
  • write(String st): este método escribe un valor de string especificado por ‘st’ en el archivo.

Java

// Java program to write text to file
  
import java.io.FileWriter;
  
public class GFG {
  
    public static void main(String args[])
    {
  
        String data = "Welcome to gfg";
  
        try {
            // Creates a FileWriter
            FileWriter output
                = new FileWriter("output.txt");
  
            // Writes the string to the file
            output.write(data);
  
            // Closes the writer
            output.close();
        }
  
        catch (Exception e) {
            e.getStackTrace();
        }
    }
}

Producción:

The file output.txt will contain "Welcome to gfg" text.

2. obtenerCodificación()

Este método se usa para obtener el tipo de codificación que se usa para escribir los datos.

Java

// java program to show the usage
// of getEncoding() function
  
import java.io.FileWriter;
import java.nio.charset.Charset;
  
class Main {
    public static void main(String[] args)
    {
  
        String file = "output.txt";
  
        try {
            // Creates a FileReader with default encoding
            FileWriter o1 = new FileWriter(file);
  
            // Creates a FileReader specifying the encoding
            FileWriter o2 = new FileWriter(
                file, Charset.forName("UTF11"));
  
            // Returns the character encoding of the reader
            System.out.println("Character encoding of o1: "
                               + o1.getEncoding());
            System.out.println("Character encoding of o2: "
                               + o2.getEncoding());
  
            // Closes the reader
            o1.close();
            o2.close();
        }
  
        catch (Exception e) {
            e.getStackTrace();
        }
    }
}

Producción:

The character encoding of output1: Cp1253
The character encoding of output2: UTF11

En el ejemplo anterior, hemos creado 2 escritores de archivos llamados salida1 y salida2.

  • salida1: no especifica la codificación de caracteres. Por lo tanto, el método getEncoding() devuelve la codificación de caracteres predeterminada.
  • salida2: especifica la codificación de caracteres, UTF11 . Por lo tanto, el método getEncoding() devuelve la codificación de caracteres especificada.

3. método cerrar():

Después de terminar de escribir caracteres en un FileWriter, debemos cerrarlo. Y esto se hace llamando al método close().

 try {
     // Creates a FileReader with default encoding
     FileWriter o1 = new FileWriter(file);

     // Creates a FileReader specifying the encoding
     FileWriter o2 = new FileWriter(file, Charset.forName("UTF11"));

     // Returns the character encoding of the reader
     System.out.println("Character encoding of o1: " + o1.getEncoding());
     System.out.println("Character encoding of o2: " + o2.getEncoding());

     // Closes the FileWriter
     o1.close();
     o2.close();
   }

FileWriter frente a FileOutputStream

  • FileWriter escribe flujos de caracteres, mientras que FileOutputStream está diseñado para escribir flujos de bytes sin formato.
  • FileWriter se ocupa del carácter de 16 bits mientras que, por otro lado, FileOutputStream se ocupa de los bytes de 8 bits.
  • FileWriter maneja strings Unicode mientras que FileOutputStream escribe bytes en un archivo y no acepta caracteres o strings y, por lo tanto, para aceptar strings, debe estar envuelto con OutputStreamWriter.

Métodos de la clase FileWriter

S. No.

Método                                         

Descripción                                                                                           
1. escritura nula (texto de string) Se utiliza para escribir la string en FileWriter.
2. escritura nula (char c) Se utiliza para escribir el carácter en FileWriter.
3. escritura vacía (char[] c) Se utiliza para escribir una array de caracteres en FileWriter.
4. vaciado vacío() Se utiliza para vaciar los datos de FileWriter.
5. anular cerrar() Se utiliza para cerrar FileWriter.

Métodos de la clase OutputStreamWriter

S. No. Método                                                       Descripción                                                                                           
1. enjuagar() Vacía la corriente.
2. obtenerCodificación() Devuelve el nombre de la codificación de caracteres que utiliza este flujo.
3. escribir (char[] cbuf, int off, int len) Escribe una parte de una array de caracteres.
4. escribir (int c) Escribe un solo carácter.
5. escribe​(String str, int off, int len) Escribe una parte de una string.

Métodos de la clase Writer

S. No.

Método                                                      

Descripción                                                                                           
1. agregar (char c) Agrega el carácter especificado a este escritor.
2. agregar (CharSequence csq) Agrega la secuencia de caracteres especificada a este escritor.
3. agregar​(CharSequence csq, int start, int end) Agrega una subsecuencia de la secuencia de caracteres especificada a este escritor.
4. cerca() Cierra el flujo, enjuagándolo primero.
5. escritor nulo() Devuelve un nuevo Writer que descarta todos los caracteres.
6. escribir (char[] cbuf) Escribe una array de caracteres.
7. escribir (string str) Escribe una string.

Publicación traducida automáticamente

Artículo escrito por goelshubhangi3118 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *