Java.io.StringBufferInputStream Class in Java

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 Beginner";
        String str2 = "w3wiki";
        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 : eksForBeginner

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

.



Contact Us