private void output(String outputDir) {
	
	File file = new File(outputDir + File.separatorChar + "objectsInAllDumps.md");
	
	if (!file.getParentFile().exists())
	    file.getParentFile().mkdirs();
	
	try {
	    PrintWriter writer = new PrintWriter(new FileWriter(file));
	    
	    writer.println("## Heap Dump");
		
	    DecimalFormat format = new DecimalFormat(",###");
		
	    for (int i = 0; i < dumpFiles.size(); i++) {
		writer.println("### Dump " + i + " ["
			+ dumpFiles.get(i).getCounterName() + " = "
			+ format.format(dumpFiles.get(i).getCounter()) + "]"
			+ " name = " + dumpFiles.get(i).getFile().getName());

		UserObjectsPerDump uDump = userObjsPerDumpList.get(i);
		uDump.output(writer);
		writer.println();
	    }

	    writer.println("### Framework objects");

	    if (!bufferObjs.isEmpty()) {
		writer.println("#### SpillBuffer\n");
		writer.println("| FrameworkObj \t| Inner object \t| shallowHeap \t| retainedHeap \t|");
		writer.println("| :----------- | :----------- | -----------: | -----------: |");

		for (BufferObject bufferObj : bufferObjs) {
		    writer.println(bufferObj);
		}
		writer.println();
	    }

	    writer.println();
	    writer.println();

	    if (!segments.isEmpty()) {
		writer.println("#### Segments\n");

		writer.println("| Location \t | FrameworkObj \t| Inner object \t| retainedHeap \t| taskId \t|");
		writer.println("| :----------- | :----------- | :----------- | -----------: | -----------: |");

		for (SegmentObj sObj : segments) {
		    writer.println(sObj);
		}
		writer.println();
	    }
	    
	    writer.println();
	    writer.close();
	} catch (IOException e) {
	    // TODO Auto-generated catch block
	    e.printStackTrace();
	}
	
	
	
	
	
    }