code: public static String generateRangeHashFunction(byte[] min, byte[] max, String[] buckets, String suffix,
              String prefix) throws Exception {
          if (compareKey(min, max) > 0) {
              throw new Exception("The given min is not larger than the max. Buckets could not be determined");
          }
          byte[][] ranges = getMaxValsPerRange(min, max, buckets.length);
  
          StringBuilder sb = new StringBuilder();
          for (int i = 0; i < min.length; i++) {
              sb.append("b").append("\t");
          }
          sb.append("filename").append("\n");
  
          for (int i = 0; i < buckets.length; ++i) {
              byte[] val = ranges[i];
              for (int j = 0; j < val.length; j++) {
                  int k = val[j] & 0xff;
                  sb.append(k + "\t");
              }
              sb.append(prefix + buckets[i] + suffix + "\n");
          }
          return sb.toString();
      }
docs: Generates a {@link RangeHashFunction}.
  
  @param min
  the minimal value to expect
  @param max
  the maximal value to expect
  @param buckets
  an array with the names of the buckets
  @param suffix
  the suffix for all files
  @param prefix
  a prefix for all files
  @return String representation of the the RangeHashFunction
  @throws Exception