鸿蒙OS开发文档 鸿蒙OS CharArrayReader

2024-02-25 开发教程 鸿蒙OS开发文档 匿名 3

CharArrayReader

java.lang.Object
|---java.io.Reader
|---|---java.io.CharArrayReader

public class CharArrayReader
extends Reader

此类实现了一个可用作字符输入流的字符缓冲区。

Since:

JDK1.1

字段摘要

修饰符和类型字段描述
protected char[]buf字符缓冲区。
protected intcount此缓冲区结束的索引。
protected intmarkedPos缓冲区中标记的位置。
protected intpos当前缓冲区位置。
从类 java.io.Reader 继承的字段
lock

构造函数摘要

构造函数描述
CharArrayReader(char[] buf)从指定的字符数组创建一个 CharArrayReader。
CharArrayReader(char[] buf, int offset, int length)从指定的字符数组创建一个 CharArrayReader。

方法总结

修饰符和类型方法描述
voidclose()关闭流并释放与其关联的任何系统资源。
voidmark(int readAheadLimit)标记流中的当前位置。
booleanmarkSupported()告诉这个流是否支持 mark() 操作,它支持。
intread()读取单个字符。
intread(char[] b, int off, int len)将字符读入数组的一部分。
booleanready()告诉这个流是否准备好被读取。
voidreset()将流重置为最新标记,如果从未标记,则重置为开头。
longskip(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