code: public void close() throws IOException {
      // Handle leftover bytes
      if (charCount % 3 == 1) { // one leftover
        int lookup = (carryOver << 4) & 63;
        out.write(chars[lookup]);
        out.write('=');
        out.write('=');
      } else if (charCount % 3 == 2) { // two leftovers
        int lookup = (carryOver << 2) & 63;
        out.write(chars[lookup]);
        out.write('=');
      }
      super.close();
    }
docs: *
  Closes the stream, this MUST be called to ensure proper padding is written to the end of the
  output stream.
  
  @exception IOException if an I/O error occurs