|
|||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
java.io
类 Reader
java.lang.Object java.io.Reader
用于读取字符流的抽象类。子类必须实现的方法只有 read(char[], int, int) 和 close()。但是,多数子类将重写此处定义的一些方法,以提供更高的效率和/或其他功能。
- 从以下版本开始:
- JDK1.1
- 另请参见:
-
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 |
字段详细信息 |
---|
lock
protected Object lock
-
用于同步针对此流的操作的对象。为了提高效率,字符流对象可以使用其自身以外的对象来保护重要部分。因此,子类应使用此字段中的对象,而不是 this 或者同步的方法。
构造方法详细信息 |
---|
Reader
protected Reader()
- 创建一个新的字符流 reader,其重要部分将同步其自身的 reader。
Reader
protected Reader(Object lock)
-
创建一个新的字符流 reader,其重要部分将同步给定的对象。
- 参数:
-
lock
- 要同步的对象。
方法详细信息 |
---|
read
public int read(CharBuffer target) throws IOException
- 试图将字符读入指定的字符缓冲区。缓冲区可照原样用作字符的存储库:所做的惟一改变是 put 操作的结果。不对缓冲区执行反转或重绕操作。
-
- 参数:
-
target
- 要将字符读入的缓冲区 - 返回:
- 添加到缓冲区的字符数量,如果此字符源位于缓冲区末端,则返回 -1
- 抛出:
-
IOException
- 如果发生 I/O 错误 -
NullPointerException
- 如果目标为空 -
ReadOnlyBufferException
- 如果目标是一个只读缓冲区
read
public int read() throws IOException
-
读取单个字符。在有可用字符、发生 I/O 错误或者已到达流的末尾前,此方法一直阻塞。
用于支持高效的单字符输入的子类应重写此方法。
-
-
- 返回:
- 作为整数读取的字符,范围在 0 到 65535 之间 (0x00-0xffff),如果已到达流的末尾,则返回 -1
- 抛出:
-
IOException
- 如果发生 I/O 错误
read
public int read(char[] cbuf) throws IOException
- 将字符读入数组。在某个输入可用、发生 I/O 错误或者已到达流的末尾前,此方法一直阻塞。
-
-
- 参数:
-
cbuf
- 目标缓冲区 - 返回:
- 读取的字符数,如果已到达流的末尾,则返回 -1
- 抛出:
-
IOException
- 如果发生 I/O 错误
read
public abstract int read(char[] cbuf, int off, int len) throws IOException
- 将字符读入数组的某一部分。在某个输入可用、发生 I/O 错误或者到达流的末尾前,此方法一直阻塞。
-
-
- 参数:
-
cbuf
- 目标缓冲区 -
off
- 开始存储字符处的偏移量 -
len
- 要读取的最多字符数 - 返回:
- 读取的字符数,如果已到达流的末尾,则返回 -1
- 抛出:
-
IOException
- 如果发生 I/O 错误
skip
public long skip(long n) throws IOException
- 跳过字符。在某个字符可用、发生 I/O 错误或者已到达流的末尾前,此方法一直阻塞。
-
-
- 参数:
-
n
- 要跳过的字符数 - 返回:
- 实际跳过的字符数
- 抛出:
-
IllegalArgumentException
- 如果n
为负。 -
IOException
- 如果发生 I/O 错误
ready
public boolean ready() throws IOException
- 判断是否准备读取此流。
-
-
- 返回:
- 如果保证下一个 read() 不阻塞输入,则返回 True,否则返回 false。注意,返回 false 并不保证阻塞下一次读取。
- 抛出:
-
IOException
- 如果发生 I/O 错误