Clase Java StringBufferInputStream

Clase Java StringBufferInputStream

El Clase StringBufferInoutStream en Java nos permite crear un flujo de entrada a partir de una cadena para que podamos leer bytes de ella. Sólo funciona con los 8 bits inferiores de cada carácter. No puede manejar la gama completa de valores de caracteres. En lugar de utilizar esta clase, el mejor enfoque es utilizar ByteArrayInputStream que no tiene esta limitación, puede leer el rango completo de valores de caracteres.

Nota: Oracle ha dejado de utilizar StringBufferInputStream.

Declaración de la clase StringBufferInputStream

La declaración de la clase StringBufferInputStream se encuentra a continuación:

la clase pública StringBufferInputStream extiende InputStream

Constructores en StringBufferInputStream

Esta clase consta de un constructor con la ayuda del cual podemos crear un objeto de esta clase.

1. StringBufferInputStream (cadena de cadena): T su constructor se utiliza para crear un flujo de entrada de cadena para leer datos de una cadena especificada.

Sintaxis:

StringBufferInputStream(cadena cadena)

Ejemplo:

Java
   // Demonstrating the working    // of StringBufferInputStream(String str)   import     java.io.*  ;   public     class   Geeks  {      public     static     void     main  (  String  []     args  )     {          // Creating a String to be used with StringBufferInputStream      String     str     =     'Hello World!'  ;      // Creating StringBufferInputStream from the String      StringBufferInputStream     is     =     new     StringBufferInputStream  (  str  );      // Reading bytes from the StringBufferInputStream      int     data  ;      try     {      while     ((  data     =     is  .  read  ())     !=     -  1  )     {      // Print each byte as a character      System  .  out  .  print  ((  char  )     data  );      }      is  .  close  ();      }     catch     (  IOException     e  )     {      e  .  printStackTrace  ();      }      }   }   

Producción
Hello World! 


Métodos Java StringBufferStream

La siguiente imagen muestra los métodos de la clase PipedWriter.

Clase io.StringBufferInputStream en Java


Ahora vamos a discutir cada método uno por uno en detalle:

1. leer(): Este método se utiliza para leer un byte de datos del flujo de entrada.

Sintaxis:

lectura int pública()

  • Parámetro: Este método no toma ningún parámetro.
  • Tipo de devolución: Este método devuelve el carácter leído como un número entero; de lo contrario, devuelve -1 cuando se llega al final de la secuencia.


2. leer (byte [] buffer int offset int maxlen): Este método se utiliza para leer una cantidad específica de caracteres de un búfer.

Sintaxis:

public int read(byte[] buffer int offset int maxlen)

  • Parámetro: Este método toma tres parámetros que se enumeran a continuación:
    • buffer: Es una matriz para almacenar caracteres.
    • compensar: Es la posición inicial desde donde almacenar el personaje.
    • maxlen: Es el número máximo de caracteres a leer.
  • Tipo de devolución: Este método devuelve el número máximo de caracteres para leer; de lo contrario, devuelve -1 cuando se llega al final de la secuencia.


3. restablecer(): Este método se utiliza para restablecer la transmisión y debido a esto la lectura comienza desde el principio.

Sintaxis:

reinicio de vacío público()

  • Parámetro: Este método no toma ningún parámetro.
  • Tipo de devolución: Este método no devuelve nada.


4. saltar(n larga): Este método se utiliza para omitir e ignorar algunos caracteres en el flujo de entrada.

Sintaxis:

salto largo público (n largo)

  • Parámetro: Este método toma un solo parámetro n que es el número de bytes a omitir
  • Tipo de devolución: Este método devuelve el número real de bytes omitidos.


5. disponible(): Este método indica cuántos caracteres quedan por leer en el flujo de entrada.

Sintaxis:

int público disponible()

  • Parámetro: este método no toma ningún parámetro.
  • Tipo de retorno: este método devuelve la cantidad de caracteres que se pueden leer en el flujo de entrada.


Programa Java que ilustra el funcionamiento de los métodos de clase StringBufferInputStream

Ahora, en el siguiente ejemplo, veremos el funcionamiento de todos los métodos.

Ejemplo:

Java
   // Demonstrating the working of    // read() read(byte[] buffer int offset int maxlen)   // reset() skip(long n) available()   import     java.io.*  ;   public     class   Geeks     {      public     static     void     main  (  String  []     args  )     throws     IOException     {          String     s1     =     'Hello Geeks'  ;      String     s2     =     'GeeksForGeeks'  ;      StringBufferInputStream     b1     =     new     StringBufferInputStream  (  s1  );      StringBufferInputStream     b2     =     new     StringBufferInputStream  (  s2  );      // available()      System  .  out  .  println  (  'Use of available() 1: '     +     b1  .  available  ());      int     a  ;      System  .  out  .  println  (  'Use of read() method:'  );      while     ((  a     =     b1  .  read  ())     !=     -  1  )     {      char     c     =     (  char  )     a  ;      System  .  out  .  println  (  c  );      // skip()      b1  .  skip  (  1  );      }      System  .  out  .  println  (  'Use of available() 2: '     +     b2  .  available  ());      byte  []     byteBuffer     =     new     byte  [  15  ]  ;      b2  .  read  (  byteBuffer       1       2  );      int     b  ;      System  .  out  .  print  (  'Remaining characters after partial read: '  );      while     ((  b     =     b2  .  read  ())     !=     -  1  )     {      System  .  out  .  print  ((  char  )     b  );      }      // reset()      b1  .  reset  ();      System  .  out  .  print  (  'nAfter reset(): '  );      int     i  ;      while     ((  i     =     b1  .  read  ())     !=     -  1  )     {      System  .  out  .  print  ((  char  )     i  );      }      }   }   

Producción
Use of available() 1: 11 Use of read() method: H l o G e s Use of available() 2: 13 Remaining characters after partial read: eksForGeeks After reset(): Hello Geeks 
Crear cuestionario