description

# StringBuffer class

A class for concatenating strings efficiently.

Allows for the incremental building of a string using `write*()` methods. The strings are concatenated to a single string only when toString is called.

Example:

    final buffer = StringBuffer('DART');
    print(buffer.length); // 4

To add the string representation of an object, as returned by Object.toString, to the buffer, use write. Is also used for adding a string directly.

    buffer.write(' is open source');
    print(buffer.length); // 19
    print(buffer); // DART is open source

    const int dartYear = 2011;
    buffer
      ..write(' since ') // Writes a string.
      ..write(dartYear); // Writes an int.
    print(buffer); // DART is open source since 2011
    print(buffer.length); // 30

To add a newline after the object's string representation, use writeln. Calling writeln with no argument adds a single newline to the buffer.

    buffer.writeln(); // Contains "DART is open source since 2011\n".
    buffer.writeln('-' * (buffer.length - 1)); // 30 '-'s and a newline.
    print(buffer.length); // 62

To write multiple objects to the buffer, use writeAll.

    const separator = '-';
    buffer.writeAll(['Dart', 'is', 'fun!'], separator);
    print(buffer.length); // 74
    print(buffer);
    // DART is open source since 2011
    // ------------------------------
    // Dart-is-fun!

To add the string representation of a Unicode code point, `charCode`, to the buffer, use writeCharCode.

    buffer.writeCharCode(0x0A); // LF (line feed)
    buffer.writeCharCode(0x44); // 'D'
    buffer.writeCharCode(0x61); // 'a'
    buffer.writeCharCode(0x72); // 'r'
    buffer.writeCharCode(0x74); // 't'
    print(buffer.length); // 79

To convert the content to a single string, use toString.

    final text = buffer.toString();
    print(text);
    // DART is open source since 2011
    // ------------------------------
    // Dart-is-fun!
    // Dart

To clear the buffer, so that it can be reused, use clear.

    buffer.clear();
    print(buffer.isEmpty); // true
    print(buffer.length); // 0

Implemented types
  - StringSink

## Constructors

StringBuffer([Object content = ""])
  Creates a string buffer containing the provided `content`.

## Properties

hashCode → int
  The hash code for this object.
  no setter inherited
isEmpty → bool
  Returns whether the buffer is empty. This is a constant-time operation.
  no setter
isNotEmpty → bool
  Returns whether the buffer is not empty. This is a constant-time operation.
  no setter
length → int
  Returns the length of the content that has been accumulated so far. This is a constant-time operation.
  no setter
runtimeType → Type
  A representation of the runtime type of the object.
  no setter inherited

## Methods

clear() → void
  Clears the string buffer.
noSuchMethod(Invocation invocation) → dynamic
  Invoked when a nonexistent method or property is accessed.
  inherited
toString() → String
  Returns the contents of buffer as a single string.
  override
write(Object? object) → void
  Writes the string representation of `object`.
  override
writeAll(Iterable objects, [String separator = ""]) → void
  Writes the elements of `objects` separated by `separator`.
  override
writeCharCode(int charCode) → void
  Writes a string containing the character with code point `charCode`.
  override
writeln([Object? obj = ""]) → void
  Writes the string representation of `object` followed by a newline.
  override

## Operators

operator ==(Object other) → bool
  The equality operator.
  inherited