Module  java.base
软件包  java.io

Class StringReader

  • All Implemented Interfaces:
    CloseableAutoCloseableReadable


    public class StringReader
    extends Reader
    一个字符流,其源是一个字符串。
    从以下版本开始:
    1.1
    • Field Summary

    • 构造方法摘要

      构造方法  
      Constructor 描述
      StringReader​(String s)
      创建一个新的字符串阅读器。
    • 方法摘要

      所有方法  接口方法  具体的方法 
      Modifier and Type 方法 描述
      void close​()
      关闭流并释放与之相关联的任何系统资源。
      void mark​(int readAheadLimit)
      标记流中的当前位置。
      boolean markSupported​()
      告诉这个流是否支持mark()操作。
      int read​()
      读一个字符
      int read​(char[] cbuf, int off, int len)
      将字符读入数组的一部分。
      boolean ready​()
      告诉这个流是否准备好被读取。
      void reset​()
      将流重新设置为最近的标记,如果从未被标记,则将其重置到字符串的开头。
      long skip​(long ns)
      跳过流中指定数量的字符。
    • 构造方法详细信息

      • StringReader

        public StringReader​(String s)
        创建一个新的字符串阅读器。
        参数
        s - 提供字符流的字符串。
    • 方法详细信息

      • read

        public int read​()
                 throws IOException
        读一个字符
        重写:
        readReader
        结果
        字符读取,如果已经达到流的结尾,则为-1
        异常
        IOException - 如果发生I / O错误
      • read

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

        public long skip​(long ns)
                  throws IOException
        跳过流中指定数量的字符。 返回跳过的字符数。

        ns参数可能为负,即使Reader超类的skip方法在这种情况下抛出异常。 ns导致流向后跳。 负值返回值表示向后跳。 不可能从字符串的开头向后跳过。

        如果整个字符串已被读取或跳过,则该方法不起作用,并始终返回0。

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

        public boolean ready​()
                      throws IOException
        告诉这个流是否准备好被读取。
        重写:
        readyReader
        结果
        如果下一个read()保证不阻止输入,则为True
        异常
        IOException - 如果流关闭
      • markSupported

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

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

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

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