English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
В этом руководстве мы будем изучать Java StringReader и его методы с помощью примеров.
Класс StringReader пакета java.io можно использовать для чтения данных из строки (в виде символов).
Он наследуется от абстрактного класса Reader.
ВниманиеВ StringReader заданная строка играет роль источника, из которого читаются символы.
Для создания StringReader нам сначала нужно импортировать пакет java.io.StringReader. После импорта пакета можно создать строковый читатель.
//Создание StringReader StringReader input = new StringReader(String data);
Здесь мы создаем StringReader, который читает символы из заданной строки с именем data.
Класс StringReader предоставляет реализацию различных методов класса Reader.
read() - Чтение отдельного символа из строки
read(char[] array) - Читает символы из читателя и хранит их в указанном массиве
read(char[] array, int start, int length) - Читает из читателя количество символов, равное length, и хранит их в указанном массиве начиная с позиции start
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(). Например
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() мы не сможем использовать читатель для чтения данных из строки.
Метод | Описание |
---|---|
ready() | Проверить, готов ли строковый читатель к чтению |
mark() | Положение уже прочитанных данных в маркере чтения |
reset() | Сбросить метку, вернуться к положению метки в читателе |