Module  java.base
软件包  java.io

Class CharArrayReader

  • All Implemented Interfaces:
    CloseableAutoCloseableReadable


    public class CharArrayReader
    extends Reader
    该类实现了一个字符缓冲区,可以用作字符输入流。
    从以下版本开始:
    1.1
    • Field Summary

      Fields  
      Modifier and Type Field 描述
      protected char[] buf
      字符缓冲区。
      protected int count
      这个缓冲区结束的索引。
      protected int markedPos
      标记在缓冲区中的位置。
      protected int pos
      当前的缓冲位置。
    • 构造方法摘要

      构造方法  
      Constructor 描述
      CharArrayReader​(char[] buf)
      从指定的字符数组中创建CharArrayReader。
      CharArrayReader​(char[] buf, int offset, int length)
      从指定的字符数组中创建CharArrayReader。
    • 字段详细信息

      • buf

        protected char[] buf
        字符缓冲区。
      • pos

        protected int pos
        当前的缓冲位置。
      • markedPos

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

        protected int count
        这个缓冲区结束的索引。 此索引之外没有有效的数据。
    • 构造方法详细信息

      • CharArrayReader

        public CharArrayReader​(char[] buf)
        从指定的字符数组中创建CharArrayReader。
        参数
        buf - 输入缓冲区(未复制)
      • CharArrayReader

        public CharArrayReader​(char[] buf,
                               int offset,
                               int length)
        从指定的字符数组中创建CharArrayReader。

        得到的读者将在给定的offset开始阅读。 该读卡器可以读取的char个数字将为lengthbuf.length-offset ,以较小者为准。

        参数
        buf - 输入缓冲区(未复制)
        offset - 要读取的第一个字符的偏移量
        length - 要读取的字符数
        异常
        IllegalArgumentException - 如果 offset为负或大于 buf.length ,或者如果 length为负,或者如果这两个值之和为负。
    • 方法详细信息

      • read

        public int read​()
                 throws IOException
        读一个字符
        重写:
        readReader
        结果
        字符读取,作为0到65535( 0x00-0xffff )范围内的整数,如果已经达到流的末尾, 0x00-0xffff -1。
        异常
        IOException - 如果发生I / O错误
      • read

        public int read​(char[] b,
                        int off,
                        int len)
                 throws IOException
        将字符读入数组的一部分。
        Specified by:
        readReader
        参数
        b - 目的缓冲区
        off - 开始存储字符的偏移量
        len - 要读取的最大字符数
        结果
        读取的实际字符数,如果已达到流的末尾,则为-1
        异常
        IOException - 如果发生I / O错误
        IndexOutOfBoundsException - 如果发生I / O错误
      • skip

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

        n参数可能为负数,即使在这种情况下, Reader超类的skip方法抛出异常。 如果n为负数,则此方法不执行任何操作并返回0

        重写:
        skipReader
        参数
        n - 要跳过的字符数
        结果
        实际跳过的字符数
        异常
        IOException - 如果流关闭,或发生I / O错误
      • ready

        public boolean ready​()
                      throws IOException
        告诉这个流是否准备好被读取。 字符阵列阅读器总是准备好阅读。
        重写:
        readyReader
        结果
        如果下一个read()保证不阻止输入,则为True,否则为false。 请注意,返回false并不能保证下一次读取将被阻止。
        异常
        IOException - 如果发生I / O错误
      • markSupported

        public boolean markSupported​()
        告诉这个流是否支持mark()操作。
        重写:
        markSupportedReader
        结果
        当且仅当此流支持标记操作时才为真。
      • mark

        public void mark​(int readAheadLimit)
                  throws IOException
        标记流中的当前位置。 对reset()的后续调用将会将流重新定位到此位置。
        重写:
        markReader
        参数
        readAheadLimit - 限制仍然保留标记时可能读取的字符数。 因为流的输入来自字符数组,没有实际的限制; 因此这个论点被忽略。
        异常
        IOException - 如果发生I / O错误
      • reset

        public void reset​()
                   throws IOException
        将流重新设置为最近的标记,或将其重新设置为从未被标记的开始。
        重写:
        resetReader
        异常
        IOException - 如果发生I / O错误
      • close

        public void close​()
        关闭流并释放与之相关联的任何系统资源。 一旦流已关闭,进一步的read(),ready(),mark(),reset()或skip()调用将抛出IOException。 关闭以前关闭的流无效。 当读取器上有另一个线程阻塞时,此方法将阻止。
        Specified by:
        close在接口 AutoCloseable
        Specified by:
        close在接口 Closeable
        Specified by:
        closeReader