Освоение Java StringWriter: использование, методы и практические примеры
Класс Java StringWriter
Класс StringWriter в пакете java.io расширяет абстрактный Writer и позволяет записывать символьные данные в изменяемый строковый буфер. Буфер может расширяться по необходимости и позже преобразовываться в стандартный String через toString().
Примечание: В Java строковый буфер ведёт себя как изменяемая строка — его содержимое можно модифицировать. Метод toString() используется для получения текущего значения как неизменяемого String.
Создание StringWriter
Импортируйте класс:
import java.io.StringWriter;
Создайте объект:
// StringWriter с ёмкостью буфера по умолчанию
StringWriter output = new StringWriter();
Можно задать начальную ёмкость буфера для больших объёмов данных:
// StringWriter с заданной ёмкостью буфера
StringWriter output = new StringWriter(int size);
Аргумент size определяет начальную ёмкость внутреннего буфера.
Ключевые методы StringWriter
Метод write()
write(int c)— записывает один символ.write(char[] cbuf)— записывает массив символов.write(String str)— записывает строку.
Пример: использование StringWriter
import java.io.StringWriter;
public class Main {
public static void main(String[] args) {
String data = "This is the text in the string.";
try {
// StringWriter с ёмкостью по умолчанию
StringWriter output = new StringWriter();
// Запись данных в буфер
output.write(data);
// Вывод содержимого
System.out.println("Данные в StringWriter: " + output);
output.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
Вывод
Данные в StringWriter: This is the text in the string.
Переменная output хранит экземпляр StringWriter. Метод write() добавляет строковые данные во внутренний буфер, а содержимое буфера отображается вызовом output.toString().
Доступ к данным из буфера
getBuffer()— возвращает базовый экземплярStringBuffer.toString()— возвращает содержимое буфера как обычныйString.
Пример:
import java.io.StringWriter;
public class Main {
public static void main(String[] args) {
String data = "This is the original data";
try {
StringWriter output = new StringWriter();
output.write(data);
StringBuffer sb = output.getBuffer();
System.out.println("StringBuffer: " + sb);
String str = output.toString();
System.out.println("String: " + str);
output.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
Вывод
StringBuffer: This is the original data String: This is the original data
Метод close()
Вызов close() на StringWriter не освобождает ресурсы и не препятствует дальнейшим записям; объект остаётся пригодным после закрытия.
Дополнительные методы StringWriter
| Метод | Описание |
|---|---|
flush() | Гарантирует запись всех буферизованных данных в строковый буфер (фактически no-op для StringWriter). |
append() | Добавляет символ или строку в текущий буфер. |
Полный справочник: официальная документация Java.
java
- Освоение строк в Java: создание, методы и лучшие практики
- Ключевое слово final в Java: переменные, методы и классы
- Оператор instanceof в Java: полное руководство с примерами
- Статические вложенные классы в Java: использование, отличия и примеры
- Анонимные внутренние классы в Java: определение, синтаксис и практические примеры
- Паттерн Singleton в Java: как реализовать и безопасно использовать
- Строковые представления в Java Enums: настройка toString() и лучшие практики
- Рефлексия в Java: инспекция классов, методов и полей во время выполнения
- Освоение Java ObjectOutputStream: сериализация, методы и практические примеры
- Освоение Java Generics: создание переиспользуемого, типобезопасного кода