Tuesday, November 19, 2024
Google search engine
HomeLanguagesJavaJava.io.PushbackReader Class in Java

Java.io.PushbackReader Class in Java

io.PushbackReader Class in Java

java.io.PushbackReader is a character-stream reader class that allows characters to be pushed back into the Stream.

Declaration:

public class PushbackReader
   extends FilterReader

Constructors :

  • PushbackReader(Reader push) : Creates a new Pushback Reader – “push” with a character Pushback buffer.
  • PushbackReader(Reader push, int size) : Creates a new Pushback Reader with a Pushback buffer of a particular size.

Methods of PushbackReader class :

  • read() : java.io.PushbackReader.read() reads a single character.
    Syntax :
    public int read()
    Parameters :
    -----------
    Return : 
    reads single character from the Pushback buffer 
    else, -1 i.e. when end of file is reached.
    Exception :
    ->  IOException : If I/O error occurs.
  • read(char[] carray, int offset, int maxlen) : java.io.PushbackReader.read(char[] carray, int offset, int maxlen) reads some portion of the character array
    Syntax :
    public int read(char[] carray, int offset, int maxlen)
    Parameters :
    carray : destination buffer to be read into
    offset : starting position of the carray
    maxlen : maximum no. of characters to be read
    Return : 
    reads some portion of the character array
    else, -1 i.e. when end of file is reached.
    Exception :
    ->  IOException : If I/O error occurs.
  • close() : java.io.PushbackReader.close() closes the PushbackReader and releases system resources associated with this stream to Garbage Collector.
    Syntax :
    public void close()
    Parameters :
    ------
    Return : 
    void
    Exception :
    ->  IOException : If I/O error occurs.
  • mark(int arg) : java.io.PushbackReader.mark(int arg) marks the current position of the PushbackReader. In case of PushbackReader, this method always throws an exception.
    Syntax :
    public void mark(int arg)
    Parameters :
    arg : integer specifying the read limit of the Stream
    Return : 
    void
  • skip(long char) : java.io.PushbackReader.skip(long char) skips and discards ‘char’ no. of characters from PushbackReader data.
    Syntax :
    public long skip(long char)
    Parameters : 
    char : no. of bytes of PushbackReader data to skip.
    Return : 
    no. of bytes to be skipped
    Exception: 
    -> IOException : in case I/O error occurs
  • reset() : java.io.PushbackReader.reset() is invoked by mark() method. It repositions the PushbackReader to the marked position. In case of PushbackReader, this method always throws an exception.
    Syntax :
    public void reset()
    Parameters :
    ----
    Return : 
    void
    Exception :
    ->  IOException : If I/O error occurs.
    
  • markSupported() : java.io.PushbackReader.markSupported() Tells whether this stream supports the mark() operation, which it does not.
    Syntax :
    public boolean markSupported()
    Parameters :
    -------
    Return : 
    true if PushbackReader supports the mark() method  else,false
  • ready() : java.io.PushbackReader.ready() tells whether the stream is ready to be read or not
    Syntax :
    public boolean ready()
    Parameters :
    -------
    Return : 
    true if the stream is ready to be read else,false
  • unread(int char) : java.io.PushbackReader.unread(int char) pushes a single character to Pushback buffer. The next character to be read will have (char)char value, after this method returns.

    Syntax :

    public void unread(int char)
    Parameters :
    char : int value of the character to be pushed back
    Return : 
    void
    Exception :
    ->  IOException : If I/O error occurs or Pushback buffer is full.
    
  • unread(char[] carray) : java.io.PushbackReader.unread(char[] carray) pushes an array of character to Pushback buffer. The array being pushed will have its index starting from 0.
    Syntax :
    public void unread(char[] carray)
    Parameters :
    carray : character array to be pushed back
    Return : 
    void
    Exception :
    ->  IOException : If I/O error occurs or Pushback buffer is full.
    
  • Java code explaining the PushbackReader method : read(char[] carray), close(), markSupported(), read(), mark(), ready(), skip(), unread()




    // Java program illustrating the working of PushbackReader
    // read(char[] carray), close(), markSupported()
    // read(), mark(), ready(), skip(), unread()
      
    import java.io.*;
    public class NewClass
    {
        public static void main(String[] args) throws IOException
        {
            try
            {
                // Initializing a StringReader and PushbackReader
                String s = "GeeksForGeeks";
      
                StringReader str_reader = new StringReader(s);
                PushbackReader geek_pushReader1 = new PushbackReader(str_reader);
                PushbackReader geek_pushReader2 = new PushbackReader(str_reader);
      
                // Use of ready() method :
                System.out.println("Is stream1 ready : " + geek_pushReader1.ready());
                System.out.println("Is stream2 ready : " + geek_pushReader2.ready());
      
                // Use of read() :
                System.out.println("\nWe have used skip() method in 1 : ");
                System.out.print("\nUse of read() in 1 : ");
                for (int i = 0; i < 6; i++)
                {
                    char c = (char) geek_pushReader1.read();
                    System.out.print(c);
      
                    // Use of skip() :
                    geek_pushReader1.skip(1);
                }
                System.out.println("");
      
                // USing read() :
                char[] carray = new char[20];
                System.out.println("Using read() in 2 : " + geek_pushReader2.read(carray));
      
      
                // USe of markSupported() :
       System.out.println("\nIs mark supported in 1  : " + geek_pushReader1.markSupported());
      
                geek_pushReader2.unread('F');
      
                // read the next char, which is the one we unread
                char c3 = (char) geek_pushReader2.read();
                System.out.println("USe of unread() : " + c3);
      
                // USe of mark() :
                geek_pushReader1.mark(5);
      
                // Use of close() :
                geek_pushReader1.close();
      
            }
            catch (IOException excpt)
            {
                System.out.println("mark not supported in 1");
      
            }
        }
    }

    
    

    Output :

Is stream1 ready : true
Is stream2 ready : true

We have used skip() method in 1 : 

Use of read() in 1 : GesoGe
Using read() in 2 : 1

Is mark supported in 1 : false
USe of unread() : F
mark not supported in 1

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.

RELATED ARTICLES

Most Popular

Recent Comments