Java : FilterWriter with Examples

FilterWriter (Java SE 22 & JDK 22) with Examples.
You will find code examples on most FilterWriter methods.


Summary

Abstract class for writing filtered character streams. The abstract class FilterWriter itself provides default methods that pass all requests to the contained stream. Subclasses of FilterWriter should override some of these methods and may also provide additional methods and fields.

Class diagram

class MyWriter extends FilterWriter {
    MyWriter(Writer out) {
        super(out);
    }
}

final var sw = new StringWriter();
try (final var writer = new MyWriter(sw)) {
    writer.write("abcd");
    writer.write('-');
    writer.write("XYZ");
}

System.out.println(sw); // abcd-XYZ

Fields

protected Writer out

The underlying character-output stream.

class MyWriter extends FilterWriter {
    MyWriter(Writer out) {
        super(out);
    }

    Writer getOut() {
        return out;
    }
}

final var sw = new StringWriter();
try (final var writer = new MyWriter(sw)) {
    System.out.println(writer.getOut() == sw); // true
}

Fields declared in Writer

lock

Please see the link below.

Constructors

FilterWriter (Writer out)

Create a new filtered writer.

class MyWriter extends FilterWriter {
    MyWriter(Writer out) {
        super(out);
    }
}

final var sw = new StringWriter();
try (final var writer = new MyWriter(sw)) {
    writer.write("abcd");
    writer.write("XYZ");
}

System.out.println(sw); // abcdXYZ

Methods

void close ()

Closes the stream, flushing it first.

class MyWriter extends FilterWriter {
    MyWriter(Writer out) {
        super(out);
    }
}

final var path = Path.of("R:", "java-work", "aaa.txt");
System.out.println(path); // R:\java-work\aaa.txt

try (final var writer = new MyWriter(Files.newBufferedWriter(path))) {
    writer.append("abcd");
}

final var str = Files.readString(path);
System.out.println(str); // abcd
class MyWriter extends FilterWriter {
    MyWriter(Writer out) {
        super(out);
    }
}

// An example without a try-with-resources statement.
final var path = Path.of("R:", "java-work", "aaa.txt");
System.out.println(path); // R:\java-work\aaa.txt

final var writer = new MyWriter(Files.newBufferedWriter(path));
try {
    writer.append("abcd");
} finally {
    writer.close();
}

final var str = Files.readString(path);
System.out.println(str); // abcd

void flush ()

Flushes the stream.

class MyWriter extends FilterWriter {
    MyWriter(Writer out) {
        super(out);
    }
}

final var sw = new StringWriter();
try (final var writer = new MyWriter(new BufferedWriter(sw, 128))) {

    writer.write("abcdXYZ");
    System.out.println(sw.toString().isEmpty()); // true

    writer.flush();
    System.out.println(sw); // abcdXYZ
}
class MyWriter extends FilterWriter {
    MyWriter(Writer out) {
        super(out);
    }
}

final var sw = new StringWriter();
try (final var writer = new MyWriter(new BufferedWriter(sw, 4))) {

    writer.write("abcdXYZ");
    System.out.println(sw); // abcd

    writer.flush();
    System.out.println(sw); // abcdXYZ
}

void write (char[] cbuf, int off, int len)

Writes a portion of an array of characters.

class MyWriter extends FilterWriter {
    MyWriter(Writer out) {
        super(out);
    }
}

final char[] cbuf = {'a', 'b', 'c', 'd'};

final var sw1 = new StringWriter();
try (final var writer = new MyWriter(sw1)) {
    writer.write(cbuf, 0, 1);
}
System.out.println(sw1); // a

final var sw2 = new StringWriter();
try (final var writer = new MyWriter(sw2)) {
    writer.write(cbuf, 0, 2);
}
System.out.println(sw2); // ab

final var sw3 = new StringWriter();
try (final var writer = new MyWriter(sw3)) {
    writer.write(cbuf, 0, 3);
}
System.out.println(sw3); // abc

final var sw4 = new StringWriter();
try (final var writer = new MyWriter(sw4)) {
    writer.write(cbuf, 0, 4);
}
System.out.println(sw4); // abcd
class MyWriter extends FilterWriter {
    MyWriter(Writer out) {
        super(out);
    }
}

final char[] cbuf = {'a', 'b', 'c', 'd'};

final var sw1 = new StringWriter();
try (final var writer = new MyWriter(sw1)) {
    writer.write(cbuf, 0, 4);
}
System.out.println(sw1); // abcd

final var sw2 = new StringWriter();
try (final var writer = new MyWriter(sw2)) {
    writer.write(cbuf, 1, 3);
}
System.out.println(sw2); // bcd

final var sw3 = new StringWriter();
try (final var writer = new MyWriter(sw3)) {
    writer.write(cbuf, 2, 2);
}
System.out.println(sw3); // cd

final var sw4 = new StringWriter();
try (final var writer = new MyWriter(sw4)) {
    writer.write(cbuf, 3, 1);
}
System.out.println(sw4); // d

void write (int c)

Writes a single character.

class MyWriter extends FilterWriter {
    MyWriter(Writer out) {
        super(out);
    }
}

final var sw = new StringWriter();
try (final var writer = new MyWriter(sw)) {
    writer.write('a');
    writer.write('b');
    writer.write('c');
    writer.write('d');
    writer.write('X');
    writer.write('Y');
    writer.write('Z');
}

System.out.println(sw); // abcdXYZ

void write (String str, int off, int len)

Writes a portion of a string.

class MyWriter extends FilterWriter {
    MyWriter(Writer out) {
        super(out);
    }
}

final var str = "abcd";

final var sw1 = new StringWriter();
try (final var writer = new MyWriter(sw1)) {
    writer.write(str, 0, 1);
}
System.out.println(sw1); // a

final var sw2 = new StringWriter();
try (final var writer = new MyWriter(sw2)) {
    writer.write(str, 0, 2);
}
System.out.println(sw2); // ab

final var sw3 = new StringWriter();
try (final var writer = new MyWriter(sw3)) {
    writer.write(str, 0, 3);
}
System.out.println(sw3); // abc

final var sw4 = new StringWriter();
try (final var writer = new MyWriter(sw4)) {
    writer.write(str, 0, 4);
}
System.out.println(sw4); // abcd
class MyWriter extends FilterWriter {
    MyWriter(Writer out) {
        super(out);
    }
}
final var str = "abcd";

final var sw1 = new StringWriter();
try (final var writer = new MyWriter(sw1)) {
    writer.write(str, 0, 4);
}
System.out.println(sw1); // abcd

final var sw2 = new StringWriter();
try (final var writer = new MyWriter(sw2)) {
    writer.write(str, 1, 3);
}
System.out.println(sw2); // bcd

final var sw3 = new StringWriter();
try (final var writer = new MyWriter(sw3)) {
    writer.write(str, 2, 2);
}
System.out.println(sw3); // cd

final var sw4 = new StringWriter();
try (final var writer = new MyWriter(sw4)) {
    writer.write(str, 3, 1);
}
System.out.println(sw4); // d

Methods declared in Writer

append, append, append, nullWriter, write, write

Please see the link below.


Related posts

To top of page