docs: public static void copyStreamAndClose(InputStream is, OutputStream os) throws IOException {
          try {
              copyStream(is, os, DEFAULT_BUFFER_SIZE);
              // throw an exception if the close fails since some data might be lost
              is.close();
              os.close();
          }
          finally {
              // ...but still guarantee that they're both closed
              safeClose(is);
              safeClose(os);
          }
      }