docs: @Nonnull
      public static String readFile(@Nonnull File file, @Nonnull Charset charset) throws IOException {
          if (file == null)
              throw new NullPointerException("Given 'file' can not be null");
          if (!file.exists())
              throw new IllegalArgumentException("File " + file.getAbsolutePath() + " does not exist");
          if (file.isDirectory())
              throw new IllegalArgumentException("File " + file.getAbsolutePath() + " can NOT be a directory");
  
          InputStream in = new BufferedInputStream(new FileInputStream(file));
          ByteArrayOutputStream bos = new ByteArrayOutputStream();
          copy(in, bos);
          return new String(bos.toByteArray(), charset);
  
      }