code: public void run() throws IOException, ClassNotFoundException, Util.Exit {
          int i = 0;
          if (outFile != null) {
              /* Everything goes to one big file... */
              ByteArrayOutputStream bout = new ByteArrayOutputStream(8192);
              writeFileTop(bout); /* only once */
  
              for (TypeElement t: classes) {
                  write(bout, t);
              }
  
              writeIfChanged(bout.toByteArray(), outFile);
          } else {
              /* Each class goes to its own file... */
              for (TypeElement t: classes) {
                  ByteArrayOutputStream bout = new ByteArrayOutputStream(8192);
                  writeFileTop(bout);
                  write(bout, t);
                  writeIfChanged(bout.toByteArray(), getFileObject(t.getQualifiedName()));
              }
          }
      }
docs: After initializing state of an instance, use this method to start
  processing.
  
  Buffer size chosen as an approximation from a single sampling of:
  expr `du -sk` / `ls *.h | wc -l`