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