Java 菜鸟教程

Java 流程控制

Java 数组

Java 面向对象(I)

Java 面向对象(II)

Java 面向对象(III)

Java 异常处理

Java 列表(List)

Java Queue(队列)

Java Map集合

Java Set集合

Java 输入输出(I/O)

Java Reader/Writer

Java 其他主题

Java StringReader 类

在本教程中,我们将借助示例学习Java StringReader及其方法。

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

它继承了抽象类Reader。

StringReader类是Java Reader的子类。

注意:在StringReader中,指定的字符串充当源,从其中分别读取字符。

创建一个StringReader

为了创建一个StringReader,我们必须首先导入java.io.StringReader包。导入包后,就可以创建字符串读取器了。

//创建 StringReader
StringReader input = new StringReader(String data);

在这里,我们创建了一个StringReader,它从指定的名为data的字符串中读取字符。

StringReader的方法

StringReader类为Reader类中的不同方法提供了实现。

read()方法

  • read() - 从字符串读取器读取单个字符

  • 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
      StringReader input = new StringReader(data);

      //使用read方法
      input.read(array);
      System.out.println("从字符串读取数据:");
      System.out.println(array);

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

输出结果

从字符串读取数据:
This is the text read from StringReader.

在上面的示例中,我们创建了一个名为input的字符串读取器。 字符串阅读器链接到字符串数据(data)。

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

为了从字符串中读取数据,我们使用了read()方法。

在此,该方法从阅读器读取字符数组,并将其存储在指定的数组中。

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("原始数据: " + data);

    //创建一个字符数组
    char[] array = new char[100];

    try {
      //创建 StringReader
      StringReader input = new StringReader(data);

      //使用 skip() 方法
      input.skip(5);

      //使用 read 方法
      input.read(array);
      System.out.println("跳过5个字符后的数据:");
      System.out.println(array);

      input.close();
    }

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

输出结果

原始数据: This is the text read from the StringReader
跳过5个字符后的数据:
is the text read from the StringReader

在上面的示例中,我们使用skip()方法从字符串读取器中跳过5个字符。因此,字符'T'、'h'、'i'、's'和' '从原始字符串读取器中被跳过。

close()方法

要关闭字符串阅读器,我们可以使用该close()方法。调用close()方法后,我们将无法使用读取器从字符串读取数据。

StringReader的其他方法

方法描述
ready()检查字符串读取器是否准备好被读取
mark()标记读取器中已读取数据的位置
reset()重置标记,返回到阅读器中设置标记的位置