Java StringReader 类详细介绍以及用法详解

在本教程中,我们将通过示例了解 Java StringReader 类以及相关用法。

在本教程中,我们将通过示例了解 Java StringReader 类以及相关用法。

java.io 包的 StringReader 类可用于从字符串中读取数据(以字符为单位)。

StringReader 类扩展了抽象类 Reader

StringReader 类是 Java Reader 的子类。
Java StringReader

注意StringReader 是专门读取字符串的,,指定的字符串充当源,从中单独读取字符。

创建 StringReader

我们使用 StringReader 的构造方法创建对象,需要通过构造方法的参数要处理的字符串。如下:

StringReader input = new StringReader(String data);

在这里,我们创建了一个 StringReader 对象,从指定的字符串中读取字符.

StringReader 的方法

StringReader 类完全实现了 Reader 类定义的所有抽象方法。

read() 方法

  • ready() - 检查 Reader 流是否准备好被读取
  • read(char[] array) - 从流中读取字符并存储在指定的数组中
  • read(char[] array, int start, int length) - 读取长度为 length 字符并存储在指定数组 start 开始的位置中

示例:Java StringReader

import java.io.StringReader;

public class Main {

  public static void main(String[] args) {
    String data = "This is the text read from StringReader.";
    char[] array = new char[100];

    try {
      StringReader input = new StringReader(data);

      input.read(array);
      System.out.println("Data read from the string:");
      System.out.println(array);

      input.close();
    } catch (Exception e) {
      e.getStackTrace();
    }
  }
}

输出

Data read from the string:
This is the text read from StringReader.

在上面的例子中,我们创建了一个名为 inputStringReader 对象,并指定了要处理的字符串。

String data = "This is a text in the string.";
StringReader input = new StringReader(data);

skip() 方法

skip() 方法丢弃和跳过指定数量的字符。例如,

import java.io.StringReader;

public class Main {
  public static void main(String[] args) {

    String data = "This is the text read from StringReader";
    System.out.println("Original data: " + data);

    char[] array = new char[100];

    try {
      StringReader input = new StringReader(data);

      input.skip(5);

      input.read(array);
      System.out.println("Data after skipping 5 characters: ");
      System.out.println(array);

      input.close();
    } catch (Exception e) {
      e.getStackTrace();
    }
  }
}

输出

Original data: This is the text read from StringReader
Data after skipping 5 characters:
is the text read from StringReader

在上面的例子中,我们使用了 skip() 方法跳过 5 个字符。因此,字符 'T' , 'h' , 'i' , 's'' ' 不会被输出。

StringReader 的其他方法

方法 描述
ready() 检查流是否准备好被读取
mark() 标记流中已读取数据的位置
reset() 将控制返回到流中设置标记的点