CharArrayReader
java.lang.Object
|—java.io.Reader
|—|—java.io.CharArrayReader
public class CharArrayReader
extends Reader
此类实现了一个可用作字符输入流的字符缓冲区。
Since:
JDK1.1
字段摘要
修饰符和类型 | 字段 | 描述 |
---|---|---|
protected char[] | buf | 字符缓冲区。 |
protected int | count | 此缓冲区结束的索引。 |
protected int | markedPos | 缓冲区中标记的位置。 |
protected int | pos | 当前缓冲区位置。 |
从类 java.io.Reader 继承的字段 |
---|
lock |
构造函数摘要
构造函数 | 描述 |
---|---|
CharArrayReader(char[] buf) | 从指定的字符数组创建一个 CharArrayReader。 |
CharArrayReader(char[] buf, int offset, int length) | 从指定的字符数组创建一个 CharArrayReader。 |
方法总结
修饰符和类型 | 方法 | 描述 |
---|---|---|
void | close() | 关闭流并释放与其关联的任何系统资源。 |
void | mark(int readAheadLimit) | 标记流中的当前位置。 |
boolean | markSupported() | 告诉这个流是否支持 mark() 操作,它支持。 |
int | read() | 读取单个字符。 |
int | read(char[] b, int off, int len) | 将字符读入数组的一部分。 |
boolean | ready() | 告诉这个流是否准备好被读取。 |
void | reset() | 将流重置为最新标记,如果从未标记,则重置为开头。 |
long | skip(long n) | 跳过字符。 |
从java.lang.Object类继承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
从java.io.Reader类继承的方法 |
---|
read, read |
字段详细信息
buf
protected char[] buf
字符缓冲区。
count
protected int count
该缓冲区结束的索引。在这个索引处或之后没有有效的数据。
markedPos
protected int markedPos
标记在缓冲区的位置。
pos
protected int pos
当前的缓冲区位置。
构造函数详细信息
CharArrayReader
public CharArrayReader(char[] buf)
从指定的字符数组中创建一个CharArrayReader。
参数:
参数名称 | 参数描述 |
---|---|
buf | 输入缓冲区(未被复制) |
CharArrayReader
public CharArrayReader(char[] buf, int offset, int length)
从指定的字符数组中创建一个CharArrayReader。
生成的读取器将从给定的偏移量开始读取。可以从这个读取器中读取的char值的总数将是length或buf.length-offset,以小者为准。
参数:
参数名称 | 参数描述 |
---|---|
buf | 输入缓冲区(未被复制) |
offset | 要读取的第一个字符的偏移量 |
length | 要读取的字符数 |
Throws:
Throw名称 | Throw描述 |
---|---|
IllegalArgumentException | 如果offset为负数或大于buf.length,或者length为负数,或者这两个值的总和为负数。 |
方法详情
read
public int read() throws IOException
读取单个字符。
重写:
读取在Reader类中
返回:
读取的字符,为0-65535(0x00-0xffff)范围内的整数,如果已经到达流的末端,则为-1。
Throws:
Throw名称 | Throw描述 |
---|---|
IOException | 如果发生I/O错误 |
read
public int read(char[] b, int off, int len) throws IOException
将字符读入一个数组的一部分。
指定的是:
read in class Reader
参数。
参数名称 | 参数描述 |
---|---|
b | 目的地缓冲区 |
off | 开始存储字符的偏移量 |
len | 读取的最大字符数 |
返回:
读取的实际字符数,如果已经到达流的末端,则为-1。
Throws:
Throw名称 | Throw描述 |
---|---|
IOException | 如果发生I/O错误 |
skip
public long skip(long n) throws IOException
跳过的字符。返回被跳过的字符数。
n参数可以是负数,尽管在这种情况下Reader超类的skip方法会抛出一个异常。如果n是负数,那么这个方法不做任何事情,返回0。
覆盖:
跳过Reader类
参数:
参数名称 | 参数描述 |
---|---|
n | 要跳过的字符数 |
返回:
实际跳过的字符数
Throws:
Throw名称 | Throw描述 |
---|---|
IOException | 如果流关闭,或者发生 I/O 错误 |
ready
public boolean ready() throws IOException
说明这个流是否准备好被读取。字符阵列读取器总是准备好被读取。
重写:
ready in class Reader
返回:
如果下一个read()保证不阻塞输入,则返回true,否则返回false。注意,返回false并不保证下一次读取会阻塞。
Throws:
Throw名称 | Throw描述 |
---|---|
IOException | 如果发生I/O错误 |
markSupported
public boolean markSupported()
告诉这个流是否支持 mark() 操作,它支持。
覆盖:
markSupported in class Reader
返回:
当且仅当此流支持标记操作时才为 true。
mark
public void mark(int readAheadLimit) throws IOException
标记流中的当前位置。 对 reset() 的后续调用会将流重新定位到该点。
覆盖:
mark in class Reader
参数:
参数名称 | 参数描述 |
---|---|
readAheadLimit | 在保留标记的同时限制可以读取的字符数。 因为流的输入来自字符数组,所以没有实际限制; 因此这个论点被忽略。 |
Throws:
Throw名称 | Throw描述 |
---|---|
IOException | 如果发生 I/O 错误 |
reset
public void reset() throws IOException
将流重置为最新标记,如果从未标记,则重置为开头。
覆盖:
reset in class Reader
Throws:
Throw名称 | Throw描述 |
---|---|
IOException | 如果发生 I/O 错误 |
close
public void close()
关闭流并释放与其关联的任何系统资源。 关闭流后,进一步的 read()、ready()、mark()、reset() 或 skip() 调用将引发 IOException。 关闭以前关闭的流没有效果。
指定者:
在接口 AutoCloseable 中关闭
指定者:
在接口Closeable中关闭
指定者:
close in class Reader