docs: @Override
    public int read(char[] chr, int st, int len) throws IOException {
      try {
        beforeRead(len);
        int n = in.read(chr, st, len);
        afterRead(n);
        return n;
      } catch (IOException e) {
        handleIOException(e);
        return -1;
      }
    }