code: private PrintStream setUpNewPrintStream(final boolean visitorStream, final String... names) {
  
          PrintStream out = System.out;
  
          if (folder == null) {
              if (visitorStream) {
                  out.println();
              }
          } else {
              final File toWriteTo = new File(folder, buildFileName(names));
              try {
                  if (usedFiles.containsKey(toWriteTo)) {
                      out = usedFiles.get(toWriteTo);
                  } else {
                      toWriteTo.delete();
                      out = new PrintStream(new FileOutputStream(toWriteTo, !visitorStream));
                      usedFiles.put(toWriteTo, out);
                      firstResult = true;
                  }
              } catch (final FileNotFoundException e) {
                  throw new IllegalStateException(e);
              }
  
          }
          return out;
  
      }
docs: Setting up a new {@link PrintStream}.
  
  @param visitorStream is the stream for the visitor? Because of line breaks after the results.
  @param names         the elements of the filename
  @return a {@link PrintStream} instance
  @throws FileNotFoundException if something goes wrong with the file