Java.io.InputStreamReader class

InputStreamReader class
An InputStreamReader is a bridge from byte streams to character streams. It reads bytes and decodes them into characters using a specified charset. The charset that it uses may be specified by name or may be given explicitly, or the platform’s default charset may be accepted.
Declaration :

public class InputStreamReader
   extends Reader

Constructors :

  • InputStreamReader(InputStream in_strm) : Creates an InputStreamReader that uses the default charset.
  • InputStreamReader(InputStream in_strm, Charset cs) : creates an InputStreamReader that uses the given charset.
  • InputStreamReader(InputStream in_strm, CharsetDecoder dec) : Creates an InputStreamReader that uses the given charset decoder.
  • InputStreamReader(InputStream in_strm, String charsetName) : Creates an InputStreamReader that uses the named charset

Methods:

  • ready() : java.io.InputStreamReader.ready() tells whether the Character stream is ready to be read or not. An InputStreamReader is ready if its input buffer is not empty, or if bytes are available to be read from the underlying byte stream.
    Syntax :

    public boolean ready()
    Returns :
    True : if the Character stream is ready to be read
    False : if the Character stream is not ready to be read
  • close() : java.io.InputStreamReader.close() closes InputStreamReader and releases all the Streams associated with it. Once the stream has been closed, further read(), ready(), mark(), reset(), or skip() invocations will throw an IOException.
    Syntax :



    public void close()
    Returns :
    No value is returned

    Implementation of ready() and close() method :

    filter_none

    edit
    close

    play_arrow

    link
    brightness_4
    code

    // Java program illustrating ready() and close() method
      
    import java.io.*;
    public class NewClass
    {
        public static void main(String[] args)
        {
      
            try
            {
                // initializing FileInputStream
                FileInputStream geek = new FileInputStream("ABC.txt");
      
                // Initializing InputStreamReader object
                InputStreamReader in_strm = new InputStreamReader(geek);
      
                int t;
                while((t=in_strm.read())!= -1)
                {
                    // convert the integer tue to character
                    char r = (char)t;
                    System.out.println("Character : "+r);
      
                    // check if the stream in_strm ready
                    boolean b = in_strm.ready();
                    // Use of ready() methods
                    System.out.println("Ready? : "+b);
      
                }
                  
                // Use of close() method to Close InputStreamReader
                in_strm.close();
                  
                // Closing FileInputStream
                geek.close();
            }
            catch (FileNotFoundException fnfe)
            {
                System.out.println("NO Such File Exists");
            }
            catch (IOException excpt)
            {
                System.out.println("IOException occured");
            }
        }
    }

    chevron_right

    
    

    Note :
    All the programs in this article won’t run on online IDE as no ‘ABC’ file exists. You can check this code on Java compiler on your system.
    To check this code, create a file ‘ABC’ on your system.
    ‘ABC’ file contains :
    Geeks
    For
    Geeks
    Output :

    Character : G
    Ready? : true
    Character : e
    Ready? : true
    Character : e
    Ready? : true
    Character : k
    Ready? : true
    Character : s
    Ready? : true
    Character :  
    Ready? : true
    Character : 
    Ready? : true
    Character : 
    
    Ready? : true
    Character : F
    Ready? : true
    Character : o
    Ready? : true
    Character : r
    Ready? : true
    Character :  
    Ready? : true
    Character : 
    Ready? : true
    Character : 
    
    Ready? : true
    Character : G
    Ready? : true
    Character : e
    Ready? : true
    Character : e
    Ready? : true
    Character : k
    Ready? : true
    Character : s
    Ready? : false
    

     

  • getEncoding() : java.io.InputStreamReader.getEncoding() returns the name of the character encoding being used by this stream.
    Syntax :

    public String getEncoding()
    Parameters : 
    Returns :
    No value is returned

    Implementation of getEncoding() method :

    filter_none

    edit
    close

    play_arrow

    link
    brightness_4
    code

    // Java program illustrating getEncoding() method
      
    import java.io.*;
    public class NewClass
    {
        public static void main(String[] args)
        {
      
            try
            {
                // initializing FileInputStream
                FileInputStream geek = new FileInputStream("ABC.txt");
      
                // Initializing InputStreamReader object
                InputStreamReader in_strm = new InputStreamReader(geek);
      
                // Use of getEncoding() method
                // to get the character encoding present in the stream
                String encoding = in_strm.getEncoding();
      
                System.out.println("Encoding used : "+encoding);
      
                // Closing InputStreamReader
                in_strm.close();
                  
                // Closing FileInputStream
                geek.close();
            }
            catch (FileNotFoundException fnfe)
            {
                System.out.println("NO Such File Exists");
            }
            catch (IOException excpt)
            {
                System.out.println("IOException occured");
            }
        }
    }

    chevron_right

    
    

    Output :

    Encoding used : UTF8
    

     

  • read() : java.io.InputStreamReader.read() Returns single character after reading.
    Syntax :

    public int read()
    Returns :
    Returns single character after reading or -1 if the end of the stream has been reached

    Implementation :

    filter_none

    edit
    close

    play_arrow

    link
    brightness_4
    code

    // Java program illustrating read() method
      
    import java.io.*;
    public class NewClass
    {
        public static void main(String[] args) throws FileNotFoundException, IOException
        {
      
            // initializing FileInputStream
            FileInputStream geek = new FileInputStream("ABC.txt");
      
            // Initializing InputStreamReader object
            InputStreamReader in_strm = new InputStreamReader(geek);
      
            int t;
            String read_reslt="";
      
            // Use of read() method
            while((t = in_strm.read()) != -1)
            {
                read_reslt = read_reslt+(char)t;
            }
          
            // print the result read from the file
            System.out.println(read_reslt);
        }
    }

    chevron_right

    
    

    Note :
    ‘ABC’ file contains :
    1
    Geeks
    2
    For
    3
    Geeks
    Output :

    1
    Geeks 
    2
    For 
    3
    Geeks
    

    This article is contributed by Mohit Gupta 🙂. If you like GeeksforGeeks 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 GeeksforGeeks 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.



My Personal Notes arrow_drop_up


Article Tags :
Practice Tags :


Be the First to upvote.


Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.