public abstract class Reader
extends Object
implements Readable, Closeable
java.lang.Object | |
↳ | java.io.Reader |
Known Direct Subclasses |
Known Indirect Subclasses |
读字符流的抽象类。 子类必须实现的唯一方法是读取(char [],int,int)和close()。 但是,大多数子类会覆盖此处定义的一些方法,以提供更高的效率,更多的功能或两者。
也可以看看:
Fields |
|
---|---|
protected Object |
lock 用于同步此流上的操作的对象。 |
Protected constructors |
|
---|---|
Reader() 创建一个新的字符流阅读器,其关键部分将在阅读器本身进行同步。 |
|
Reader(Object lock) 创建一个新的字符流阅读器,其关键部分将在给定对象上同步。 |
Public methods |
|
---|---|
abstract void |
close() 关闭流并释放与其关联的所有系统资源。 |
void |
mark(int readAheadLimit) 标记流中的当前位置。 |
boolean |
markSupported() 告诉这个流是否支持mark()操作。 |
int |
read() 读取一个字符。 |
abstract int |
read(char[] cbuf, int off, int len) 将字符读入数组的一部分。 |
int |
read(char[] cbuf) 将字符读入数组。 |
int |
read(CharBuffer target) 尝试将字符读入指定的字符缓冲区。 |
boolean |
ready() 告诉这个流是否准备好被读取。 |
void |
reset() 重置流。 |
long |
skip(long n) 跳过字符。 |
Inherited methods |
|
---|---|
From class java.lang.Object
|
|
From interface java.lang.Readable
|
|
From interface java.io.Closeable
|
|
From interface java.lang.AutoCloseable
|
Object lock
用于同步此流上的操作的对象。 为了提高效率,字符流对象可以使用除自身以外的对象来保护关键部分。 因此子类应该使用该字段中的对象而不是this或同步方法。
Reader (Object lock)
创建一个新的字符流阅读器,其关键部分将在给定对象上同步。
Parameters | |
---|---|
lock |
Object : The Object to synchronize on. |
void close ()
关闭流并释放与其关联的所有系统资源。 一旦流被关闭,read(),ready(),mark(),reset()或skip()调用将会抛出一个IOException异常。 关闭以前关闭的流不起作用。
Throws | |
---|---|
IOException |
If an I/O error occurs |
void mark (int readAheadLimit)
标记流中的当前位置。 随后对reset()的调用将尝试将流重新定位到此点。 并非所有的字符输入流都支持mark()操作。
Parameters | |
---|---|
readAheadLimit |
int : Limit on the number of characters that may be read while still preserving the mark. After reading this many characters, attempting to reset the stream may fail. |
Throws | |
---|---|
IOException |
If the stream does not support mark(), or if some other I/O error occurs |
boolean markSupported ()
告诉这个流是否支持mark()操作。 默认实现总是返回false。 子类应该重写此方法。
Returns | |
---|---|
boolean |
true if and only if this stream supports the mark operation. |
int read ()
读取一个字符。 此方法将阻塞,直到出现字符,发生I / O错误或到达流的末尾。
旨在支持高效单字符输入的子类应该重写此方法。
Returns | |
---|---|
int |
The character read, as an integer in the range 0 to 65535 (0x00-0xffff), or -1 if the end of the stream has been reached |
Throws | |
---|---|
IOException |
If an I/O error occurs |
int read (char[] cbuf, int off, int len)
将字符读入数组的一部分。 此方法将阻塞,直到某些输入可用,发生I / O错误或到达流的末尾。
Parameters | |
---|---|
cbuf |
char : Destination buffer |
off |
int : Offset at which to start storing characters |
len |
int : Maximum number of characters to read |
Returns | |
---|---|
int |
The number of characters read, or -1 if the end of the stream has been reached |
Throws | |
---|---|
IOException |
If an I/O error occurs |
int read (char[] cbuf)
将字符读入数组。 此方法将阻塞,直到某些输入可用,发生I / O错误或到达流的末尾。
Parameters | |
---|---|
cbuf |
char : Destination buffer |
Returns | |
---|---|
int |
The number of characters read, or -1 if the end of the stream has been reached |
Throws | |
---|---|
IOException |
If an I/O error occurs |
int read (CharBuffer target)
尝试将字符读入指定的字符缓冲区。 该缓冲区原样用作字符的存储库:唯一的更改是放置操作的结果。 不执行翻转或倒带缓冲器。
Parameters | |
---|---|
target |
CharBuffer : the buffer to read characters into |
Returns | |
---|---|
int |
The number of characters added to the buffer, or -1 if this source of characters is at its end |
Throws | |
---|---|
IOException |
if an I/O error occurs |
NullPointerException |
if target is null |
|
if target is a read only buffer |
boolean ready ()
告诉这个流是否准备好被读取。
Returns | |
---|---|
boolean |
True if the next read() is guaranteed not to block for input, false otherwise. Note that returning false does not guarantee that the next read will block. |
Throws | |
---|---|
IOException |
If an I/O error occurs |
void reset ()
重置流。 如果流已被标记,则尝试在标记处重新定位。 如果流未被标记,则尝试以某种适合特定流的方式重置它,例如通过将其重新定位到其起始点。 并非所有的字符输入流都支持reset()操作,有些支持reset()而不支持mark()。
Throws | |
---|---|
IOException |
If the stream has not been marked, or if the mark has been invalidated, or if the stream does not support reset(), or if some other I/O error occurs |
long skip (long n)
跳过字符。 此方法将阻塞,直到某些字符可用,发生I / O错误或到达流的末尾。
Parameters | |
---|---|
n |
long : The number of characters to skip |
Returns | |
---|---|
long |
The number of characters actually skipped |
Throws | |
---|---|
IllegalArgumentException |
If n is negative. |
IOException |
If an I/O error occurs |