Clase Java.io.Writer en Java

Esta clase abstracta para escribir en secuencias de caracteres. Los únicos métodos que debe implementar una subclase son write(char[], int, int), flush() y close(). Sin embargo, la mayoría de las subclases anularán algunos de los métodos definidos aquí para proporcionar una mayor eficiencia, funcionalidad adicional o ambos.
Constructor

  • protected Writer() : crea un nuevo escritor de flujo de caracteres cuyas secciones críticas se sincronizarán en el propio escritor.
  • Escritor protegido (bloqueo de objeto): crea un nuevo escritor de flujo de caracteres cuyas secciones críticas se sincronizarán en el objeto dado.

Métodos:

  • Writer append(char c) : Agrega el carácter especificado a este escritor. Una invocación de este método de la forma out.append(c) se comporta exactamente de la misma manera que la invocación
    out.write(c)
    Syntax :public Writer append(char c)
                  throws IOException
    Parameters:
    c - The 16-bit character to append
    Returns:
    This writer
    Throws:
    IOException
  • Writer append(CharSequence csq) : Agrega la secuencia de caracteres especificada a este escritor. Una invocación de este método de la forma out.append(csq) se comporta exactamente de la misma manera que la invocación
    out.write(csq.toString())
    Dependiendo en la especificación de toString para la secuencia de caracteres csq, es posible que no se agregue la secuencia completa. Por ejemplo, invocar el método toString de un búfer de caracteres devolverá una subsecuencia cuyo contenido depende de la posición y el límite del búfer.
    Syntax :public Writer append(CharSequence csq)
                  throws IOException
    Parameters:
    csq - The character sequence to append. If csq is null, 
    then the four characters "null" are appended to this writer.
    Returns:
    This writer
    Throws:
    IOException
  • Writer append(CharSequence csq, int start, int end) : Agrega una subsecuencia de la secuencia de caracteres especificada a este escritor. Agrega una subsecuencia de la secuencia de caracteres especificada a este escritor
    Syntax :public Writer append(CharSequence csq,
                int start,
                int end)
                  throws IOException
    Parameters:
    csq - The character sequence from which a subsequence will be appended. 
    If csq is null, then characters will be appended as 
    if csq contained the four characters "null".
    start - The index of the first character in the subsequence
    end - The index of the character following the last character in the subsequence
    Returns:
    This writer
    Throws:
    IndexOutOfBoundsException
    IOException
  • abstract void close() : Cierra la transmisión y la limpia primero. Una vez que se ha cerrado la secuencia, las invocaciones adicionales de write() o flush() harán que se lance una IOException. Cerrar una transmisión previamente cerrada no tiene ningún efecto.
    Syntax :public abstract void close()
                        throws IOException
    Throws:
    IOException 
  • abstract void flush() : Vacía la secuencia. Si la secuencia ha guardado caracteres de los diversos métodos de escritura() en un búfer, escríbalos inmediatamente en el destino previsto. Luego, si ese destino es otro carácter o secuencia de bytes, descárguelo. Por lo tanto, una invocación de flush() vaciará todos los búferes en una string de Writers y OutputStreams.
    Syntax :public abstract void flush()
                        throws IOException
    Throws:
    IOException
  • void write(char[] cbuf) : Escribe una array de caracteres.
    Syntax :public void write(char[] cbuf)
               throws IOException
    Parameters:
    cbuf - Array of characters to be written
    Throws:
    IOException - If an I/O error occurs
  • abstract void write(char[] cbuf, int off, int len) : Escribe una parte de una array de caracteres.
    Syntax :public abstract void write(char[] cbuf,
             int off,
             int len)
                        throws IOException
    Parameters:
    cbuf - Array of characters
    off - Offset from which to start writing characters
    len - Number of characters to write
    Throws:
    IOException
  • void write(int c) : Escribe un solo carácter. El carácter que se va a escribir está contenido en los 16 bits de orden inferior del valor entero dado; los 16 bits de orden superior se ignoran.
    Las subclases que pretenden admitir una salida eficiente de un solo carácter deben anular este método.
    Syntax :public void write(int c)
               throws IOException
    Parameters:
    c - int specifying a character to be written
    Throws:
    IOException
  • void write(String str) : Escribe una string.
    Syntax :public void write(String str)
               throws IOException
    Parameters:
    str - String to be written
    Throws:
    IOException
  • void write(String str, int off, int len) : Escribe una parte de una string.
    Syntax :public void write(String str,
             int off,
             int len)
               throws IOException
    Parameters:
    str - A String
    off - Offset from which to start writing characters
    len - Number of characters to write
    Throws:
    IndexOutOfBoundsException 

Programa :

//Java program demonstrating Writer methods
  
import java.io.IOException;
import java.io.PrintWriter;
import java.io.Writer;
class WriterDemo
{
    public static void main(String[] args) throws IOException
    {
        Writer wr=new PrintWriter(System.out);
        char c[] = {'B','C','D','E','F'};
        CharSequence cs = "JKL";
        String str = "GHI";
  
        //illustrating write(int c)
        wr.write(65);
          
        //flushing the stream
        wr.flush();
          
        //illustrating write(char[] c,int off,int len)
        wr.write(c);
        wr.flush();
          
        //illustrating write(String str,int off,int len)
        wr.write(str);
        wr.flush();
          
        //illustrating append(Charsequence cs,int start,int end)
        wr.append(cs);
        wr.flush();
          
        //illustrating append(int ch)
        wr.append('M');
        wr.flush();
  
        //closing the stream
        wr.close();
    }
}

Producción :

ABCDEFGHIJKLM

Este artículo es una contribución de Nishant Sharma . Si le gusta GeeksforGeeks y le gustaría contribuir, también puede escribir un artículo usando contribuya.geeksforgeeks.org o envíe su artículo por correo a contribuya@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.

Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 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 *