Reader
is an abstract class used to read character-oriented data (16-bit Unicode) from input sources such as files, memory, or network connections.
java.io
package.
read()
to read single characters, arrays of characters or lines of text from input sources.
InputStream
which deals with bytes, Reader
is specifically designed to handle characters, making it suitable for text data.
BufferedReader br = new BufferedReader(new FileReader("file.txt"));
String line = br.readLine();
br.close();
BufferedReader
that keeps track of line numbers while reading characters.
LineNumberReader lnr = new LineNumberReader(new FileReader("file.txt"));
String line = lnr.readLine();
int lineNumber = lnr.getLineNumber();
lnr.close();
char[] data = {'J','a','v','a'};
CharArrayReader car = new CharArrayReader(data);
int ch = car.read();
car.close();
// FilterReader is abstract, must be extended
// Example: PushbackReader is one implementation
FilterReader
that allows characters to be pushed back into the stream.
PushbackReader pr = new PushbackReader(new FileReader("file.txt"));
int ch = pr.read();
pr.unread(ch); // pushes back the character
pr.close();
System.in
for reading user input as characters.
InputStreamReader isr = new InputStreamReader(System.in);
int ch = isr.read();
isr.close();
InputStreamReader
for reading character files.
FileReader fr = new FileReader("file.txt");
int ch = fr.read();
fr.close();
PipedWriter
, used for communication between threads.
PipedWriter pw = new PipedWriter();
PipedReader pr = new PipedReader(pw);
// one thread writes to pw, another reads from pr
StringReader sr = new StringReader("Hello Java");
int ch = sr.read();
sr.close();
Your feedback helps us grow! If there's anything we can fix or improve, please let us know.
We’re here to make our tutorials better based on your thoughts and suggestions.