docs: public void close() throws IOException {
          if (outStream == null && outWriter == null) {
              throw new IllegalStateException();
          }
          if (outStream != null) {
              outStream.close();
          }
          if (outWriter != null) {
              outWriter.close();
          }
      }