Very much like FilterInputStream and FilterOutputStream
You must override the three-args read and write methods:
public int read(char[] text, int offset, int length) throws IOException
public void write(char[] text, int offset, int length) throws IOException