InputStreamReader class in Java Last Updated : 21 Feb, 2022 Comments Improve Suggest changes Like Article Like Report 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 readclose() : 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 returnedImplementation 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? : falsegetEncoding() : 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 returnedImplementation 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 : UTF8read() : 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 reachedImplementation : 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 Comment More infoAdvertise with us Next Article InputStreamReader class in Java M Mohit Gupta Improve Article Tags : Java Java-I/O Practice Tags : Java Similar Reads Java FileInputStream Class FileInputStream class in Java is useful for reading data from a file in the form of a Java sequence of bytes. FileInputStream is meant for reading streams of raw bytes such as image data. For reading streams of characters, consider using FileReader.Example: FileInputStream class to read data from fi 4 min read Java.io.InputStream Class in Java Java InputStream class is the superclass of all the io classes i.e. representing an input stream of bytes. It represents an input stream of bytes. Applications that are defining a subclass of the Java InputStream class must provide a method, that returns the next byte of input. A reset() method is i 3 min read Java FileReader Class FileReader in Java is a class in the java.io package which can be used to read a stream of characters from the files. Java IO FileReader class uses either specified charset or the platform's default charset for decoding from bytes to characters.1. Charset: The Charset class is used to define methods 3 min read Java.io.FilterInputStream Class in Java Filter Streams filters data as they read and write data in the Input Stream, filters it and pass it on to the underlying Streams. Filter Streams are FilterInputStream FilterOutput Stream FilterInputStream : Java.io.FilterInputStream class works almost like InputStream class in Java but what it does 9 min read Java.io.DataInputStream class in Java | Set 2 Java.io.DataInputStream class in Java | Set 1 More Methods: byte readByte() : Reads and returns one input byte. Syntax:public final byte readByte() throws IOException Returns: the next byte of this input stream as a signed 8-bit byte. Throws: EOFException IOException float readFloat() : Reads four i 3 min read Java.io.FilterReader class in Java Abstract class for reading filtered character streams. The abstract class FilterReader itself provides default methods that pass all requests to the contained stream. Subclasses of FilterReader should override some of these methods and may also provide additional methods and fields. Constructor : pr 3 min read Java.io.DataInputStream class in Java | Set 1 A data input stream enables an application to read primitive Java data types from an underlying input stream in a machine-independent way(instead of raw bytes). That is why it is called DataInputStream - because it reads data (numbers) instead of just bytes. An application uses a data output stream 3 min read Java.io.FilterOutputStream Class in Java java.io.FilterInputStream Class in Java Java.io.FilterOutputStream class is the superclass of all those classes which filters output streams. The write() method of FilterOutputStream Class filters the data and write it to the underlying stream, filtering which is done depending on the Streams. Decla 5 min read Java PushbackReader Class The PushbackReader class in Java is part of the java.io.package, and is used for reading characters from a stream. This class lets us push characters back into the stream. Features of PushbackReader Class:This class uses a buffer that allows us to push characters back into the stream.This class is g 6 min read Difference Between FileInputStream and FileReader in Java Let us first do discuss them in order to get the understanding alongside an example to interpret the differences. Here first we will be discussing out FileReader class. So starting of with FileReader class in java is used to read data from the file. It returns data in byte format like FileInputStrea 4 min read Like