java.io.BufferedReader
BufferedReader is a buffered character input reader. Buffering allows reading
from character streams more efficiently. If the default size of the buffer is
not practical, another size may be specified. Reading a character from a
Reader class usually involves reading a character from its Stream or
subsequent Reader. It is advisable to wrap a BufferedReader around those
Readers whose read operations may have high latency. For example, the
following code
BufferedReader inReader = new BufferedReader(new FileReader("file.java"));
will buffer input for the file
file.java
.
Known Direct Subclasses
LineNumberReader |
LineNumberReader is a buffered character input reader which counts line
numbers as data is being read. |
Summary
protected |
|
|
Object |
lock |
The object used to synchronize access to the reader. |
Public Constructors
Public Methods
Methods inherited
from class
java.io.Reader
clone,
equals,
finalize,
getClass,
hashCode,
notify,
notifyAll,
toString,
wait,
wait,
wait
Details
Public Constructors
public
BufferedReader(Reader in)
Constructs a new BufferedReader on the Reader
in
. The
default buffer size (8K) is allocated and all reads can now be filtered
through this BufferedReader.
Parameters
in
| the Reader to buffer reads on.
|
public
BufferedReader(Reader in, int size)
Constructs a new BufferedReader on the Reader
in
. The
buffer size is specified by the parameter
size
and all
reads can now be filtered through this BufferedReader.
Parameters
in
| the Reader to buffer reads on. |
size
| the size of buffer to allocate. |
Public Methods
public
void
close()
Close the Reader. This implementation closes the Reader being filtered
and releases the buffer used by this reader. If this BufferedReader has
already been closed, nothing is done.
Throws
IOException
| If an error occurs attempting to close this BufferedReader.
|
public
void
mark(int readlimit)
Set a Mark position in this BufferedReader. The parameter
readLimit
indicates how many characters can be read before
a mark is invalidated. Sending reset() will reposition the reader back to
the marked position provided
readLimit
has not been
surpassed.
Parameters
readlimit
| an int representing how many characters must be read before
invalidating the mark. |
public
boolean
markSupported()
Returns a boolean indicating whether or not this Reader supports mark()
and reset(). This implementation returns
true
.
Returns
true
if mark() and reset() are supported,
false
otherwise
public
int
read(char[] buffer, int offset, int length)
Reads at most
length
characters from this BufferedReader
and stores them at
offset
in the character array
buffer
. Returns the number of characters actually read or
-1 if the end of reader was encountered. If all the buffered characters
have been used, a mark has not been set, and the requested number of
characters is larger than this Readers buffer size, this implementation
bypasses the buffer and simply places the results directly into
buffer
.
Parameters
buffer
| character array to store the read characters |
offset
| offset in buf to store the read characters |
length
| maximum number of characters to read |
Returns
- number of characters read or -1 if end of reader.
Throws
IOException
| If the BufferedReader is already closed or some other IO
error occurs.
|
public
int
read()
Reads a single character from this reader and returns the result as an
int. The 2 higher-order characters are set to 0. If the end of reader was
encountered then return -1. This implementation either returns a
character from the buffer or if there are no characters available, fill
the buffer then return a character or -1.
Returns
- the character read or -1 if end of reader.
Throws
IOException
| If the BufferedReader is already closed or some other IO
error occurs.
|
public
String
readLine()
Returns a
String
representing the next line of text
available in this BufferedReader. A line is represented by 0 or more
characters followed by
'\n'
,
'\r'
,
'\r\n'
or end of stream. The
String
does
not include the newline sequence.
Returns
- the contents of the line or null if no characters were read
before end of stream.
Throws
IOException
| If the BufferedReader is already closed or some other IO
error occurs.
|
public
boolean
ready()
Returns a
boolean
indicating whether or not this Reader is
ready to be read without blocking. If the result is
true
,
the next
read()
will not block. If the result is
false
this Reader may or may not block when
read()
is sent.
Returns
true
if the receiver will not block when
read()
is called, false
if unknown
or blocking will occur.
Throws
IOException
| If the BufferedReader is already closed or some other IO
error occurs.
|
public
void
reset()
Reset this BufferedReader's position to the last
mark()
location. Invocations of
read()/skip()
will occur from
this new location. If this Reader was not marked, throw IOException.
Throws
IOException
| If a problem occurred, the receiver does not support
mark()/reset() , or no mark has been set.
|
public
long
skip(long amount)
Skips
amount
number of characters in this Reader.
Subsequent
read()
's will not return these characters
unless
reset()
is used. Skipping characters may invalidate
a mark if marklimit is surpassed.
Parameters
amount
| the maximum number of characters to skip. |
Returns
- the number of characters actually skipped.