InputStreamReader class in Java - GeeksforGeeks

21 Feb, 2022
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 : 
Java
// 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 true 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 except)        {            System.out.println("IOException occurred");        }    }}
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 : 
Java
// 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 except)        {            System.out.println("IOException occurred");        }    }}
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 : 
Java
// 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);    }}
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 write.geeksforgeeks.org or mail your article to review-team@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.
gulshankumarar231
sumitgumber28
Java-I/O
Java
Java
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Object Oriented Programming (OOPs) Concept in Java
HashMap in Java with Examples
Stream In Java
Interfaces in Java
How to iterate any Map in Java
ArrayList in Java
Initialize an ArrayList in Java
Stack Class in Java
Multidimensional Arrays in Java
Singleton Class in Java