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.
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 GeeksCrear cuestionario