InputStreamReader is bridge between bytes and streams. This usually reads the bytes from the source files and convert them to the characters with the specified charset. Which charset has to be used will be specified with the name. In this example I have used “UTF-8” charset. This exampls shows how to use InputStreamReader for reading a text file.
There are four constructors define for this class:
- InputStreamReader(InputStream in) – Creates an InputStreamReader that uses the default charset.
- InputStreamReader(InputStream in, Charset cs) – Creates an InputStreamReader that uses the given charset.
- InputStreamReader(InputStream in, CharsetDecoder dec) – Creates an InputStreamReader that uses the given charset decoder.
- InputStreamReader(InputStream in, String charsetName) – Creates an InputStreamReader that uses the named charset.
There are five methods defined in this class:
- void close() – Closes the stream and releases any system resources associated with it.
- String getEncoding() – Returns the name of the character encoding being used by this stream.
- int read() – Reads a single character.
- int read(char[] cbuf, int offset, int length) – Reads characters into a portion of an array.
- boolean ready() – Tells whether this stream is ready to be read.
Lets look at the simple example.
InputStreamReaderExample.java
package javabeat.net.io; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; /** * InputStreamReader Example * * @author Krishna * */ public class InputStreamReaderExample { private static final String FILE = "TextFile.txt"; public static void main(String[] args) { char[] chars = new char[70]; try (InputStreamReader inputStreamReader = new InputStreamReader(new FileInputStream(FILE),"UTF-8")) { inputStreamReader.read(chars); System.out.println(Arrays.toString(chars)); Arrays.fill(chars,' ') ; inputStreamReader.read(chars,4,50); System.out.println(Arrays.toString(chars)); } catch (IOException e) { e.printStackTrace(); } } }