阅读(2290) (0)

鸿蒙OS CharArrayReader

2022-10-17 09:37:50 更新

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