|
Chapter 11 The java.io Package |
|
BufferedReader
Name
BufferedReader
- Class Name:
-
java.io.BufferedReader
- Superclass:
-
java.io.Reader
- Immediate Subclasses:
-
None
- Interfaces Implemented:
-
None
- Availability:
-
New as of JDK 1.1
A BufferedReader object provides a more
efficient way to read just a few characters at a time from a
Reader.
BufferedReader objects
use a buffer to store input from an associated Reader.
In other words, a large number of characters are read from the underlying
reader and stored in an internal buffer. A BufferedReader
is more efficient than a regular Reader
because reading data from memory is faster than reading it from a disk
or a network. All reading is done directly from the buffer; the disk or
network needs to be accessed only occasionally to fill up the buffer.
You should wrap a BufferedReader around any
Reader whose read() operations
may be time consuming or costly, such as a
FileReader or InputStreamReader.
BufferedReader
provides a way to mark a position in the stream and subsequently reset
the stream to that position, using mark()
and reset().
A BufferedReader is similar
to a BufferedInputStream, but
it operates on a stream of Java characters instead of a byte stream, which
makes it easier to support internationalization.
public class java.io.BufferedReader extends java.io.Reader {
// Constructors
public BufferedReader(Reader in);
public BufferedReader(Reader in, int sz);
// Instance Methods
public void close();
public void mark(int readAheadLimit);
public boolean markSupported();
public int read();
public int read(char[] cbuf, int off, int len);
public String readLine();
public boolean ready();
public void reset();
public long skip(long n);
}
- Parameters
-
- in
-
The reader to buffer.
- Description
-
This constructor creates a BufferedReader
that buffers input from the given Reader
using a buffer with the default size of 8192 characters.
- Parameters
-
- in
-
The reader to buffer.
- sz
-
The size of buffer to use.
- Throws
-
- IllegalArgumentException
-
If the specified size is less than 0.
- Description
-
This constructor creates a BufferedReader
that buffers input from the given Reader,
using a buffer of the given size.
- Throws
-
- IOException
-
If any kind of I/O error occurs.
- Overrides
-
Reader.close()
- Description
-
This method closes this BufferedReader and its
underlying Reader.
- Parameters
-
- readlimit
-
The maximum number of bytes that can be read before the saved position becomes invalid.
- Throws
-
- IOException
-
If the stream
is closed.
- Overrides
-
Reader.mark(int)
- Description
-
This method causes the BufferedReader
to remember its current position. A subsequent call to reset()
causes the object to return to that saved position, and thus reread a
portion of the buffer.
- Returns
-
The boolean value true.
- Overrides
-
Reader.markSupported()
- Description
-
This method returns true to
indicate that this class supports mark()
and reset().
- Returns
-
The next character of data, or -1 if the end of the stream is encountered.
- Throws
-
- IOException
-
If any kind of I/O error occurs.
- Overrides
-
Reader.read()
- Description
-
This method returns the next character from the buffer. If all the characters
in the buffer have been read, the buffer is filled from the underlying
Reader, and the next character
is returned. If the buffer does not need to be filled, this method returns
immediately. If the buffer needs to be filled, this method blocks until
data is available from the underlying Reader,
the end of the stream is reached, or an exception is thrown.
- Parameters
-
- cbuf
-
An array of characters to be filled from the stream.
- off
-
Offset into the character array.
- len
-
Number of characters to read.
- Returns
-
The actual number of characters read or -1 if the end of the stream is
encountered immediately.
- Throws
-
- IOException
-
If any kind
of I/O error occurs.
- Overrides
-
Reader.read(char[], int, int)
- Description
-
This method reads characters from the internal buffer into the given array
cbuf, starting at index off
and continuing for up to len bytes.
If there are any characters in the buffer, this method returns
immediately. Otherwise the buffer needs to be filled; this method blocks
until the data is available from the underlying InputStream,
the end of the stream is reached, or an exception is thrown.
- Returns
-
A String containing the line
just read, or null if the end
of the stream has been reached.
- Throws
-
- IOException
-
If any kind
of I/O error occurs.
- Description
-
This method reads a line of text. Lines are
terminated by "\n", "\r",
or "\r\n". The line terminators are not
returned with the line string.
- Returns
-
A boolean value that indicates
whether the stream is ready to be read.
- Throws
-
- IOException
-
If the stream is closed.
- Overrides
-
Reader.ready()
- Description
-
If there is data in the buffer, or if the underlying stream is ready, this
method returns true. The underlying
stream is ready if the next read()
is guaranteed to not block. Note that a return value of
false does not guarantee that the next
read operation will block.
- Throws
-
- IOException
-
If the reader
is closed, mark() has not been
called, or the saved position has been invalidated.
- Overrides
-
Reader.reset()
- Description
-
This method sets the position of the BufferedReader
to a position that was saved by a previous call to mark().
Subsequent characters read from this BufferedReader
will begin from the saved position and continue normally.
- Parameters
-
- n
-
The number of characters
to skip.
- Returns
-
The actual number of characters skipped.
- Throws
-
- IOException
-
If any kind
of I/O error occurs.
- Overrides
-
Reader.skip()
- Description
-
This method skips n characters
of input. If the new position of the stream is still within the data contained
in the buffer, the method returns immediately. Otherwise the buffer is
repeatedly filled until the requested position is available.
IllegalArgumentException,
IOException,
Reader,
String
|
|