JavaTM Platform
Standard Ed. 6

java.io
类 StringReader

java.lang.Object
  继承者 java.io.Reader
      继承者 java.io.StringReader
所有已实现的接口:
Closeable, Readable

public class StringReader
extends Reader

其源为一个字符串的字符流。

从以下版本开始:
JDK1.1

字段摘要
 
从类 java.io.Reader 继承的字段
lock
 
构造方法摘要
StringReader(String s)
          创建一个新字符串 reader。
 
方法摘要
 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)
          跳过流中指定数量的字符。
 
从类 java.io.Reader 继承的方法
read, read
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

构造方法详细信息

StringReader

public StringReader(String s)
创建一个新字符串 reader。

参数:
s - 提供字符流的字符串。
方法详细信息

read

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

覆盖:
Reader 中的 read
返回:
读取的字符,如果已到达流的末尾,则返回 -1
抛出:
IOException - 如果发生 I/O 错误

read

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

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

skip

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

ns 参数可能为负数,即便 Reader 超类的 skip 方法在此情况下会抛出一个异常。ns 为负值导致此流向后跳读。负返回值指示向后跳读。向后跳读不可能超过字符串的开头。

如果读取或跳读了整个字符串,则此方法无效且始终返回 0。

覆盖:
Reader 中的 skip
参数:
ns - 要跳过的字符数
返回:
实际跳过的字符数
抛出:
IOException - 如果发生 I/O 错误

ready

public boolean ready()
              throws IOException
判断此流是否已经准备好用于读取。

覆盖:
Reader 中的 ready
返回:
如果保证下一个 read() 不阻塞输入,则返回 True
抛出:
IOException - 如果该流已关闭

markSupported

public boolean markSupported()
判断此流是否支持 mark() 操作以及支持哪一项操作。

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

mark

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

覆盖:
Reader 中的 mark
参数:
readAheadLimit - 在仍保留该标记的情况下,对可读取字符数量的限制。由于该流的输入来自一个字符串,不存在实际的限制,因此,此参数决不能为负数,否则将被忽略。
抛出:
IllegalArgumentException - 如果 readAheadLimit < 0
IOException - 如果发生 I/O 错误

reset

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

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

close

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

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

JavaTM Platform
Standard Ed. 6

提交错误或意见
有关更多的 API 参考资料和开发人员文档,请参阅 Java SE 开发人员文档。该文档包含更详细的、面向开发人员的描述,以及总体概述、术语定义、使用技巧和工作代码示例。

版权所有 2007 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策