Класс Java StringReader представляет поток символов, источником которого является строка. Основное использование этого класса — передача содержимого String в метод, который принимает параметр Reader Type.
1. Класс StringReader
- Он предназначен для чтения потоков символов, источником которых является строка.
- Является частью пакета java.io.
- Он расширяет абстрактный класс Reader.
- Он реализует интерфейсы Closeable, AutoCloseable и Readable.
- Он предоставляет методы для чтения символов из потока.
2. Создание StringReader
Чтобы использовать StringReader в приложении, мы должны сначала импортировать его из пакета java.io с помощью оператора import. Для создания экземпляра StringReader используйте один из его конструкторов.
В приведенном ниже примере StringReader будет считывать символы из строковых данных.
String data = "humpty dumpty";StringReader stringReader = new StringReader(data);
3. Использование StringReader
Давайте рассмотрим несколько примеров чтения файла с помощью StringReader в Java.
3.1 Чтение символов строки с помощью StringReader
В данном примере мы считываем символы из строковых данных. Затем мы выводим считанные символы в стандартный вывод.
String data = "humpty dumpty";try(StringReader stringReader= new StringReader(data)){int ch = stringReader.read();while(ch != -1){ch = stringReader.read();\//System.out.print((char)ch);}}
3.2 Использование StringReader для анализа XML
В данном примере мы хотим проанализировать XML-строку(обычно получаемую как ответ API) в объект JAXB Document. Метод parse() принимает тип Reader, поэтому мы используем StringReader для обертывания ответа String и передачи его методу parse().
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();factory.setNamespaceAware(true);DocumentBuilder documentBuilder = factory.newDocumentBuilder();InputSource inputSource = new InputSource(new StringReader(xml));Document document = documentBuilder.parse(inputSource);