public static void diffStuff()
	{
		// Get the path of current directory
		Path currentDir = Paths.get(System.getProperty("user.dir"));

		// Manipulate the paths to point to specific files.
		Path pathToFileA = currentDir.resolve("../src/DemoMain.java");
		Path pathToFileB = currentDir.resolve("../src/DemoDbManager.java");

		// Note in the logger that we called normalize() so that we'd get something
		// like "util/demo/src" and not "util/demo/build/../src". Same path, but
		// one is easier for a human to read.
		logger.debug("Path to file A: "	+ pathToFileA.normalize());
		logger.debug("Path to file B: "	+ pathToFileB.normalize());

		System.out.println("\nCreating diffs and patching.");

		// Create a diff (note that it takes in lists of Strings)
		List<String> fileA = DemoDiff.fileToList(pathToFileA);
		List<String> fileB = DemoDiff.fileToList(pathToFileB);
		Patch<String> patch = DiffUtils.diff(fileA, fileB);

		try
		{
			// Create a PrintWriter for writing to a file
			PrintWriter writer = new PrintWriter("difference.patch", "UTF-8");
			// And loop through the diff to get all lines and print them to the patch file
			for(Delta<String> delta : patch.getDeltas())
			{
				writer.println(delta);
			}
			writer.close();
		}
		catch(IOException e)
		{
			logger.error(e);
		}

		try
		{
			// And apply the patch to File A to recover file B
			List<String> result = DiffUtils.patch(fileA, patch);

			// And write the recreated file to a physical file
			PrintWriter writer = new PrintWriter("recreated.java", "UTF-8");
			for(String line : result)
			{
				writer.println(line);
			}
			writer.close();
		}
		catch(Exception e)
		{
			logger.error(e);
		}
	}