docs: public static long copy(InputStream input, OutputStream output, long offset) throws IOException {
          long count = 0;
          long n = 0;
          if (input instanceof FileInputStream) {
              FileChannel inChannel = ((FileInputStream) input).getChannel();
              WritableByteChannel outChannel = Channels.newChannel(output);
              count = inChannel.transferTo(offset, inChannel.size() - offset, outChannel);
          } else if (output instanceof FileOutputStream) {
              FileChannel outChannel = ((FileOutputStream) output).getChannel();
              ReadableByteChannel inChannel = Channels.newChannel(input);
              do {
                  n = outChannel.transferFrom(inChannel, offset + count, DEFAULT_BUFFER_SIZE);
                  count += n;
              } while (n > 0);
          } else {
              byte[] buffer = new byte[DEFAULT_BUFFER_SIZE];
  
              input.skip(offset);
              while (-1 != (n = input.read(buffer))) {
                  output.write(buffer, 0, (int) n);
                  count += n;
              }
              // ReadableByteChannel inChannel = Channels.newChannel(input);
              // WritableByteChannel outChannel = Channels.newChannel(output);
              //            
              // //ByteBuffer buffer = new ByteBuffer(DEFAULT_BUFFER_SIZE);
              // ByteBuffer buffer = ByteBuffer.allocateDirect(DEFAULT_BUFFER_SIZE);
              // while (-1 != (n = inChannel.read(buffer))) {
              // outChannel.write(buffer);
              // count += n;
              // }
          }
          return count;
      }