public class

BufferedReader

extends Reader
java.lang.Object
   ↳ java.io.Reader
     ↳ java.io.BufferedReader
Known Direct Subclasses

Class Overview

Wraps an existing Reader and buffers the input. Expensive interaction with the underlying reader is minimized, since most (smaller) requests can be satisfied by accessing the buffer alone. The drawback is that some extra space is required to hold the buffer and that copying takes place when filling that buffer, but this is usually outweighed by the performance benefits.

A typical application pattern for the class looks like this:

 BufferedReader buf = new BufferedReader(new FileReader("file.java"));
 

See Also

Summary

[Expand]
Inherited Fields
From class java.io.Reader
Public Constructors
BufferedReader(Reader in)
Constructs a new BufferedReader, providing in with a buffer of 8192 characters.
BufferedReader(Reader in, int size)
Constructs a new BufferedReader, providing in with size characters of buffer.
Public Methods
void close()
Closes this reader.
void mark(int markLimit)
Sets a mark position in this reader.
boolean markSupported()
Indicates whether this reader supports the mark() and reset() methods.
int read()
Reads a single character from this reader and returns it with the two higher-order bytes set to 0.
int read(char[] buffer, int offset, int length)
Reads at most length characters from this reader and stores them at offset in the character array buffer.
String readLine()
Returns the next line of text available from this reader.
boolean ready()
Indicates whether this reader is ready to be read without blocking.
void reset()
Resets this reader's position to the last mark() location.
long skip(long amount)
Skips amount characters in this reader.
[Expand]
Inherited Methods
From class java.io.Reader
From class java.lang.Object
From interface java.io.Closeable
From interface java.lang.Readable

Public Constructors

public BufferedReader (Reader in)

Since: API Level 1

Constructs a new BufferedReader, providing in with a buffer of 8192 characters.

Parameters
in the Reader the buffer reads from.

public BufferedReader (Reader in, int size)

Since: API Level 1

Constructs a new BufferedReader, providing in with size characters of buffer.

Parameters
in the InputStream the buffer reads from.
size the size of buffer in characters.
Throws
IllegalArgumentException if size <= 0.

Public Methods

public void close ()

Since: API Level 1

Closes this reader. This implementation closes the buffered source reader and releases the buffer. Nothing is done if this reader has already been closed.

Throws
IOException if an error occurs while closing this reader.

public void mark (int markLimit)

Since: API Level 1

Sets a mark position in this reader. The parameter markLimit indicates how many characters can be read before the mark is invalidated. Calling reset() will reposition the reader back to the marked position if markLimit has not been surpassed.

Parameters
markLimit the number of characters that can be read before the mark is invalidated.
Throws
IllegalArgumentException if markLimit < 0.
IOException if an error occurs while setting a mark in this reader.

public boolean markSupported ()

Since: API Level 1

Indicates whether this reader supports the mark() and reset() methods. This implementation returns true.

Returns
  • true for BufferedReader.
See Also

public int read ()

Since: API Level 1

Reads a single character from this reader and returns it with the two higher-order bytes set to 0. If possible, BufferedReader returns a character from the buffer. If there are no characters available in the buffer, it fills the buffer and then returns a character. It returns -1 if there are no more characters in the source reader.

Returns
  • the character read or -1 if the end of the source reader has been reached.
Throws
IOException if this reader is closed or some other I/O error occurs.

public int read (char[] buffer, int offset, int length)

Since: API Level 1

Reads at most length characters from this reader and stores them at offset in the character array buffer. Returns the number of characters actually read or -1 if the end of the source reader has been reached. 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, BufferedReader bypasses the buffer and simply places the results directly into buffer.

Parameters
buffer the character array to store the characters read.
offset the initial position in buffer to store the bytes read from this reader.
length the maximum number of characters to read, must be non-negative.
Returns
  • number of characters read or -1 if the end of the source reader has been reached.
Throws
IndexOutOfBoundsException if offset < 0 or length < 0, or if offset + length is greater than the size of buffer.
IOException if this reader is closed or some other I/O error occurs.

public String readLine ()

Since: API Level 1

Returns the next line of text available from this reader. A line is represented by zero or more characters followed by '\n', '\r', "\r\n" or the end of the reader. The string does not include the newline sequence.

Returns
  • the contents of the line or null if no characters were read before the end of the reader has been reached.
Throws
IOException if this reader is closed or some other I/O error occurs.

public boolean ready ()

Since: API Level 1

Indicates whether this reader is ready to be read without blocking.

Returns
  • true if this reader will not block when read is called, false if unknown or blocking will occur.
Throws
IOException if this reader is closed or some other I/O error occurs.

public void reset ()

Since: API Level 1

Resets this reader's position to the last mark() location. Invocations of read() and skip() will occur from this new location.

Throws
IOException if this reader is closed or no mark has been set.

public long skip (long amount)

Since: API Level 1

Skips amount 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.
Throws
IllegalArgumentException if amount < 0.
IOException if this reader is closed or some other I/O error occurs.