当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Java Java.io.StringReader用法及代码示例


Java 中的 StringReader 类是一个字符流类,其源是字符串。它继承了Reader类。不需要关闭StringReader,因为没有使用网络套接字和文件等系统资源。让我们检查一下有关 Java 中StringReader 类的更多要点。

在 Java 中声明 StringReader 类

public class StringReader extends Reader  

Java StringReader 类中的构造函数

Java中与StringReader类一起使用的构造函数如下:

StringReader(String s) : Creates a new string reader.

Java StringReader 类中的方法

JavaStringReader类中的方法如下:

方法 说明
int read() 读取单个字符
int 读取(char[] cbuf, int 关闭, int len) 将字符读入数组的一部分
布尔值ready() 告知该流是否已准备好读取
布尔值markSupported() 告知流是否支持标记
无效标记(int readAheadLimit) 标记流中存在位置中存在的标记
无效reset() 将流重置为最近的标记,或者重置为字符串的开头(如果从未标记过)。
长跳过(长 ns) 重置流中指定数量的字符
无效close() 关闭流

1.int read()

读取单个字符。

Syntax :public int read() throws IOException

返回:
The character read, or -1 if the end of the stream has been reached

Throws:
IOException

2. int 读取(char[] cbuf, int off, int len)

将字符读入数组的一部分。

Syntax :public int read(char[] cbuf,int off, int len)
         throws IOException

参数:
cbuf - Destination buffer
off - Offset at which to start writing characters
len - Maximum number of characters to read

返回:
The number of characters read, or -1 if the end of the stream has been reached
Throws:
IOException

3.布尔值ready()

告知该流是否已准备好读取。

Syntax :public boolean ready()
              throws IOException

返回:
True if the next read() is guaranteed not to block for input

Throws:
IOException

4.布尔值markSupported()

告知此流是否支持 mark() 操作(它确实支持)。

Syntax :public boolean markSupported()

返回:
true if and only if this stream supports the mark operation.

5. 无效标记(int readAheadLimit)

标记流中的当前位置。对 reset() 的后续调用会将流重新定位到这一点。

Syntax :public void mark(int readAheadLimit)
          throws IOException

参数:
readAheadLimit - Limit on the number of characters that may 
be read while still preserving the mark. Because the stream's input 
comes from a string, there is no actual limit, so this argument 
must not be negative, but is otherwise ignored.

Throws:
IllegalArgumentException
IOException

6.无效reset()

将流重置为最近的标记,或者重置为字符串的开头(如果从未标记过)。

Syntax :public void reset()
           throws IOException

Throws:
IOException 

7. 长跳过(long ns)

它跳过流中指定数量的字符。返回跳过的字符数。 ns 参数可能为负数,即使 Reader 超类的 Skip 方法在这种情况下会引发异常。 ns 的负值会导致流向后跳过。负返回值表示向后跳跃。不可能向后跳到字符串的开头。如果整个字符串已被读取或跳过,则此方法无效并始终返回 0。

Syntax :public long skip(long ns)
          throws IOException

参数:
ns - The number of characters to skip

返回:
The number of characters actually skipped

Throws:
IOException

8.无效close()

关闭流并释放与其关联的所有系统资源。关闭流后,进一步的 read()、ready()、mark() 或 reset() 调用将引发 IOException。关闭之前关闭的流没有任何效果。

Syntax :public void close()

示例

Java


// Java program demonstrating StringReader methods 
import java.io.IOException; 
import java.io.StringReader; 
  
// Driver class 
class StringReaderDemo { 
    // main function 
    public static void main(String[] args) 
        throws IOException 
    { 
        StringReader str = new StringReader( 
            " GeeksforGeeks & quot;); 
        char c[] = new char[7]; 
  
        // illustrating markSupported() 
        if (str.markSupported()) { 
            System.out.println( 
                " Mark method is supported & quot;); 
            // illustrating mark() 
            str.mark(100); 
        } 
  
        // illustrating skip() method 
        str.skip(5); 
  
        // whether this stream is ready to be read. 
        if (str.ready()) { 
            // illustrating read() method 
            System.out.print((char)str.read()); 
  
            // illustrating read(char cff[],int off,int len) 
            str.read(c); 
            for (int i = 0; i & lt; 7; i++) { 
                System.out.print(c[i]); 
            } 
        } 
  
        // illustrating reset() method 
        str.reset(); 
  
        for (int i = 0; i & lt; 5; i++) { 
            System.out.print((char)str.read()); 
        } 
  
        // illustrating close() 
        str.close(); 
    } 
}

输出

Mark method is supported
forGeeksGeeks


相关用法


注:本文由纯净天空筛选整理自佚名大神的英文原创作品 Java.io.StringReader class in Java。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。