java.lang.Object java.io.Reader
用于读取字符流的抽象类。子类必须实现的方法只有 read(char[], int, int) 和 close()。但是,多数子类将重写此处定义的一些方法,以提供更高的效率和/或其他功能。
BufferedReader
,
LineNumberReader
,
CharArrayReader
,
InputStreamReader
,
FileReader
,
FilterReader
,
PushbackReader
,
PipedReader
,
StringReader
,
Writer
字段摘要 | |
---|---|
protected Object |
lock 用于同步针对此流的操作的对象。 |
构造方法摘要 | |
---|---|
protected |
Reader() 创建一个新的字符流 reader,其重要部分将同步其自身的 reader。 |
protected |
Reader(Object lock) 创建一个新的字符流 reader,其重要部分将同步给定的对象。 |
方法摘要 | |
---|---|
abstract void |
close() 关闭该流并释放与之关联的所有资源。 |
void |
mark(int readAheadLimit) 标记流中的当前位置。 |
boolean |
markSupported() 判断此流是否支持 mark() 操作。 |
int |
read() 读取单个字符。 |
int |
read(char[] cbuf) 将字符读入数组。 |
abstract int |
read(char[] cbuf, int off, int len) 将字符读入数组的某一部分。 |
int |
read(CharBuffer target) 试图将字符读入指定的字符缓冲区。 |
boolean |
ready() 判断是否准备读取此流。 |
void |
reset() 重置该流。 |
long |
skip(long n) 跳过字符。 |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
字段详细信息 |
---|
protected Object lock
构造方法详细信息 |
---|
protected Reader()
protected Reader(Object lock)
lock
- 要同步的对象。
方法详细信息 |
---|
public int read(CharBuffer target) throws IOException
target
- 要将字符读入的缓冲区
IOException
- 如果发生 I/O 错误
NullPointerException
- 如果目标为空
ReadOnlyBufferException
- 如果目标是一个只读缓冲区
public int read() throws IOException
用于支持高效的单字符输入的子类应重写此方法。
IOException
- 如果发生 I/O 错误
public int read(char[] cbuf) throws IOException
cbuf
- 目标缓冲区
IOException
- 如果发生 I/O 错误
public abstract int read(char[] cbuf, int off, int len) throws IOException
cbuf
- 目标缓冲区
off
- 开始存储字符处的偏移量
len
- 要读取的最多字符数
IOException
- 如果发生 I/O 错误
public long skip(long n) throws IOException
n
- 要跳过的字符数
IllegalArgumentException
- 如果
n
为负。
IOException
- 如果发生 I/O 错误
public boolean ready() throws IOException
IOException
- 如果发生 I/O 错误
public boolean markSupported()
public void mark(int readAheadLimit) throws IOException
readAheadLimit
- 在仍保留该标记的情况下,对可读取字符数量的限制。在读取这样多的字符后,尝试重置流可能会失败。
IOException
- 如果该流不支持 mark(),或者发生一些其他 I/O 错误
public void reset() throws IOException
IOException
- 如果尚未标记流,或者该标记已失效,或者该流不支持 reset(),或者发生一些其他 I/O 错误
public abstract void close() throws IOException
IOException
- 如果发生 I/O 错误