home | O'Reilly's CD bookshelfs | FreeBSD | Linux | Cisco | Cisco Exam  


Java Fundamental Classes Reference

Previous Chapter 11
The java.io Package
Next
 

BufferedReader

Name

BufferedReader

Synopsis

Class Name:

java.io.BufferedReader

Superclass:

java.io.Reader

Immediate Subclasses:

None

Interfaces Implemented:

None

Availability:

New as of JDK 1.1

Description

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.

Class Summary

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);
}

Constructors

BufferedReader

public BufferedReader(Reader in)

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.

public BufferedReader(Reader in, int sz)

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.

Instance Methods

close

public void close() throws IOException

Throws

IOException

If any kind of I/O error occurs.

Overrides

Reader.close()

Description

This method closes this BufferedReader and its underlying Reader.

mark

public void mark(int readAheadLimit) throws IOException

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.

markSupported

public boolean markSupported()

Returns

The boolean value true.

Overrides

Reader.markSupported()

Description

This method returns true to indicate that this class supports mark() and reset().

read

public int read() throws IOException

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.

public int read(char[] cbuf, int off, int len) throws IOException

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.

readLine

public String readLine() throws IOException

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.

ready

public boolean ready() throws IOException

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.

reset

public void reset() throws IOException

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.

skip

public long skip(long n) throws IOException

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.

Inherited Methods

Method

Inherited From

Method

Inherited From

clone()

Object

equals(Object)

Object

finalize()

Object

getClass()

Object

hashCode()

Object

notify()

Object

notifyAll()

Object

read(char[])

Reader

toString()

Object

void wait()

Object

void wait(long)

Object

void wait(long, int)

Object

See Also

IllegalArgumentException, IOException, Reader, String


Previous Home Next
BufferedOutputStream Book Index BufferedWriter

Java in a Nutshell Java Language Reference Java AWT Java Fundamental Classes Exploring Java