java.io

接口
异常
错误
java.lang.Object
  继承者 java.io.Reader
      继承者 java.io.CharArrayReader
所有已实现的接口:
Closeable, Readable

public class CharArrayReader
     
extends Reader

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

从以下版本开始:
JDK1.1

字段摘要
protected  char[] buf
          字符缓冲区。
protected  int count
          此缓冲区结尾处的索引。
protected  int markedPos
          缓冲区中标记的位置。
protected  int pos
          当前缓冲区位置。
 
从类 java.io.Reader 继承的字段
lock
 
构造方法摘要
CharArrayReader(char[] buf)
          根据指定的 char 数组创建一个 CharArrayReader。
CharArrayReader(char[] buf, int offset, int length)
          根据指定的 char 数组创建一个 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.io.Reader 继承的方法
read, read
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

字段详细信息

buf

protected char[] buf
字符缓冲区。


pos

protected int pos
当前缓冲区位置。


markedPos

protected int markedPos
缓冲区中标记的位置。


count

protected int count
此缓冲区结尾处的索引。在此索引及其以后的位置处没有有效数据。

构造方法详细信息

CharArrayReader

public CharArrayReader(char[] buf)
根据指定的 char 数组创建一个 CharArrayReader。

参数:
buf - 输入缓冲区(不是复制得到的)

CharArrayReader

public CharArrayReader(char[] buf,
                       int offset,
                       int length)
根据指定的 char 数组创建一个 CharArrayReader。

得到的 reader 将从给定的 offset 处开始读取。可从此 reader 中读取的 char 值总数是 lengthbuf.length-offset,取其中的较小者。

参数:
buf - 输入缓冲区(不是复制得到的)
offset - 要读取的第一个 char 的偏移量
length - 要读取的 char 数目
抛出:
IllegalArgumentException - 如果 offset 为负或大于 buf.length,或者 length 为负,或者这两个值的和为负。
方法详细信息

read

public int read()
         throws IOException
读取单个字符。

覆盖:
Reader 中的 read
返回:
作为整数读取的字符,范围在 0 到 65535 之间 ( 0x00-0xffff),如果已到达流的末尾,则返回 -1
抛出:
IOException - 如果发生 I/O 错误

read

public int read(char[] b,
                int off,
                int len)
         throws IOException
将字符读入数组的某一部分。

指定者:
Reader 中的 read
参数:
b - 目标缓冲区
off - 开始存储字符处的偏移量
len - 要读取的最大字符数
返回:
读取的实际字符数;如果到达流末尾,则返回 -1
抛出:
IOException - 如果发生 I/O 错误

skip

public long skip(long n)
          throws IOException
跳过字符。返回跳过的字符数。

n 参数可以为负数,尽管 Reader 超类的 skip 方法在此情况下会抛出一个异常。如果 n 为负数,则此方法不执行任何操作并返回 0

覆盖:
Reader 中的 skip
参数:
n - 要跳过的字符数
返回:
已跳过的实际字符数
抛出:
IOException - 如果流已关闭,或者发生 I/O 错误

ready

public boolean ready()
              throws IOException
判断此流是否已准备好被读取。Character-array reader 总是准备好被读取。

覆盖:
Reader 中的 ready
返回:
如果保证下一个 read() 不阻塞输入,则返回 True,否则返回 false。注意,返回 false 并不保证阻塞下一次读取。
抛出:
IOException - 如果发生 I/O 错误

markSupported

public boolean markSupported()
判断此流是否支持 mark() 操作(它一定支持)。

覆盖:
Reader 中的 markSupported
返回:
当且仅当此流支持此 mark 操作时,返回 true。

mark

public void mark(int readAheadLimit)
          throws IOException
标记流中的当前位置。对 reset() 的后续调用会将该流重新定位到此点。

覆盖:
Reader 中的 mark
参数:
readAheadLimit - 在仍保留该标记的情况下,对可读取字符数量的限制。因为该流的输入来自字符数组,没有实际的限制;所以忽略此参数。
抛出:
IOException - 如果发生 I/O 错误

reset

public void reset()
           throws IOException
将该流重置为最新的标记,如果从未标记过,则将其重置到开头。

覆盖:
Reader 中的 reset
抛出:
IOException - 如果发生 I/O 错误

close

public void close()
关闭该流并释放与之关联的所有系统资源。关闭该流后,再调用 read()、ready()、mark()、reset() 或 skip() 将抛出 IOException。关闭以前关闭的流无效。

指定者:
接口 Closeable 中的 close
指定者:
Reader 中的 close