code: protected void printFeatures(IN wi, Collection<String> features) {
      if (flags.printFeatures == null || writtenNum > flags.printFeaturesUpto) {
        return;
      }
      try {
        if (cliqueWriter == null) {
          cliqueWriter = new PrintWriter(new FileOutputStream("feats" + flags.printFeatures + ".txt"), true);
          writtenNum = 0;
        }
      } catch (Exception ioe) {
        throw new RuntimeException(ioe);
      }
      if (writtenNum >= flags.printFeaturesUpto) {
        return;
      }
      if (wi instanceof CoreLabel) {
        cliqueWriter.print(wi.get(TextAnnotation.class) + ' ' + wi.get(PartOfSpeechAnnotation.class) + ' '
            + wi.get(CoreAnnotations.GoldAnswerAnnotation.class) + '\t');
      } else {
        cliqueWriter.print(wi.get(CoreAnnotations.TextAnnotation.class)
            + wi.get(CoreAnnotations.GoldAnswerAnnotation.class) + '\t');
      }
      boolean first = true;
      for (Object feat : features) {
        if (first) {
          first = false;
        } else {
          cliqueWriter.print(" ");
        }
        cliqueWriter.print(feat);
      }
      cliqueWriter.println();
      writtenNum++;
    }
docs: Print the String features generated from a IN