java.io.StringBufferInputStream class helps in creating an Input Stream where, one can read bytes from the string. If we use this class we can only read lower 8 bits of each character present in the string.
But if we use ByteArrayInputStream, there is no restriction of reading only lower 8 bits of each character present in the string.
This class has been deprecated by Oracle and should not be used any more.
Declaration:
public class StringBufferInputStream extends InputStream
Constructor :
- StringBufferInputStream(String str) : Creates a string input stream to read data from the specified string.
Methods:
- read() : java.io.StringBufferInputStream.read() reads bytes of data from the Input Stream and returns -1 if end of the Stream is reached.
Syntax :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)) reads bytes of data from the buffer starting at offset position up to maxlen and returns -1 if end of the Stream is reached.
Syntax :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() resets the Input Stream and starts reading from the first character of ‘buffer’ present in the Input Stream.
Syntax :public void reset() Parameters : ----------- Return : void
- skip(long b) : java.io.StringBufferInputStream.skip(long b) skips ‘b’ bytes. Few bytes are skipped if end of file is reached.
Syntax :public long skip(long b) Parameters : b : no. of bytes to be skipped Return : no. of bytes skipped
- available() : java.io.StringBufferInputStream.available() tells the total no. of bytes available for reading.
Syntax :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); } } } |
Output :
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
.
This article is contributed by Mohit Gupta 🙂. If you like Lazyroar and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the Lazyroar main page and help other Geeks.
Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.