Clase Java.io.StringBufferInputStream en Java

io.StringBufferInputStream class in Java

La clase java.io.StringBufferInputStream ayuda a crear un flujo de entrada donde uno puede leer bytes de la string. Si usamos esta clase, solo podemos leer los 8 bits inferiores de cada carácter presente en la string.
Pero si usamos ByteArrayInputStream , no hay restricción de leer solo los 8 bits inferiores de cada carácter presente en la string.
Oracle ha desaprobado esta clase y ya no debe usarse.

Declaración:

public class StringBufferInputStream
   extends InputStream

Constructor:

  • StringBufferInputStream(String str) : crea un flujo de entrada de string para leer datos de la string especificada.

Métodos:

  • read() : java.io.StringBufferInputStream.read() lee bytes de datos del flujo de entrada y devuelve -1 si se alcanza el final del flujo.
    Sintaxis:
    public int read()
    Parameters : 
    -----------
    Return  :
    Returns read character as an integer ranging from range 0 to 65535.
    -1 : when end of file is reached.
  • read(byte[] buffer, int offset, int maxlen) : java.io.StringBufferInputStream.read(byte[] buffer, int offset, int maxlen)) lee bytes de datos del búfer comenzando en la posición de compensación hasta maxlen y regresa -1 si se alcanza el final del Stream.
    Sintaxis:
    public int read(byte[] buffer, int offset, int maxlen))
    Parameters : 
    buffer : destination buffer to be read into  
    offset : starting position from where to store characters
    maxlen : maximum no. of characters to be read
    Return  :
    Returns all the characters read
    -1 : when end of file is reached.
  • reset() : java.io.StringBufferInputStream.reset() restablece el flujo de entrada y comienza a leer desde el primer carácter de ‘búfer’ presente en el flujo de entrada.
    Sintaxis:
    public void reset()
    Parameters : 
    -----------
    Return  :
    void
    
  • skip(long b) : java.io.StringBufferInputStream.skip(long b) salta ‘b’ bytes. Se saltan algunos bytes si se llega al final del archivo.
    Sintaxis:
    public long skip(long b)
    Parameters : 
    b : no. of bytes to be skipped
    Return  :
    no. of bytes skipped
    
  • disponible() : java.io.StringBufferInputStream.disponible() indica el número total. de bytes disponibles para lectura.
    Sintaxis:
    public int available()
    Parameters : 
    ----------------
    Return  :
    total no. of bytes that can be read
    
// Java program illustrating the working of StringBufferInputStream class methods
// read(), skip(), available(), reset()
// read(char[] char_array, int offset, int maxlen)
  
import java.io.*;
public class NewClass
{
    public static void main(String[] args) throws IOException
    {
  
        String str1 = "Hello Geeks";
        String str2 = "GeeksForGeeks";
        StringBufferInputStream Geek_buffer1 = new StringBufferInputStream(str1);
        StringBufferInputStream Geek_buffer2 = new StringBufferInputStream(str2);
  
        // USe of available() : to count total bytes to be read
        System.out.println("Use of available() 1 : "+ Geek_buffer1.available());
  
        int a = 0;
        System.out.print("Use of read() method : ");
          
        // Use of read() method : reading each byte one by one
        while((a = Geek_buffer1.read()) != -1)
        {
            // Converting byte to char
            char c1 = (char)a;
            System.out.println(c1);
  
            // Use of skip() method
            long char_no = Geek_buffer1.skip(1);
            System.out.println("Characters Skipped : "+ (c1+1));
  
        }
        System.out.println("");
  
        // USe of available() : to count total bytes to be read
        System.out.println("Use of available() 2 : "+ Geek_buffer2.available());
  
          
        byte[] buffer = new byte[15];
      
        // Use of read(char[] char_array, int offset, int maxlen):
        // reading a part of array
        Geek_buffer2.read(buffer, 1, 2);
        int b = 0;
  
        System.out.print("read(char[] char_array, int offset, int maxlen): ");
        while((b = Geek_buffer2.read()) != -1)
        {
            char c2 = (char)b;
            System.out.print(c2);
        }
        System.out.println("");
  
        // Use of reset() : to reset str1 for reading again
        Geek_buffer1.reset();
        int i = 0;
        System.out.print("\nUse of read() method again after reset() : ");
          
        // Use of read() method : reading each character one by one
        while((i = Geek_buffer1.read()) != -1)
        {
            char c3 = (char)i;
            System.out.print(c3);
        }
    }
}

Producción :

Use of available() 1 : 11
Use of read() method : H
Characters Skipped : 73
l
Characters Skipped : 109
o
Characters Skipped : 112
G
Characters Skipped : 72
e
Characters Skipped : 102
s
Characters Skipped : 116

Use of available() 2 : 13
Use of read(char[] char_array, int offset, int maxlen) method : eksForGeeks

Use of read() method again after reset() : Hello Geeks

.
Este artículo es una contribución de . 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 *