public static void compare(PrintStream out, byte data1[], byte data2[])
	{
		ByteArrayInputStream inputStream1 = new ByteArrayInputStream(data1);
		ByteArrayInputStream inputStream2 = new ByteArrayInputStream(data1);
		int inputLength1 = data1.length;
		int inputLength2 = data2.length;
		int minSize = (inputLength1 > inputLength2) ? inputLength2 : inputLength1;
		
		for (long i = 0; i < minSize; ++i)
		{
			int firstData = inputStream1.read();
			int secondData = inputStream2.read();
			if (firstData != secondData)
			{
			    out.println(String.valueOf(i) + ": " + toDisplayString(inputStream1, i) + " - " + "data1");
			    out.println(String.valueOf(i) + ": " + toDisplayString(inputStream2, i) + " - " + "data2");
			    out.println();
			}
		}

		if (inputLength1 >= minSize)
		{
			for (long i = minSize; i < inputLength1; ++i)
			{
				int firstData = inputStream1.read();
				out.println(String.valueOf(i) + ": " + toDisplayString(inputStream1, i) + " - " + "data1");
				out.println(String.valueOf(i) + ": null" + " - " + "data2");
				out.println();
			}
		}

		if (inputLength2 >= minSize)
		{
			for (long i = minSize; i < inputLength2; ++i)
			{
				int secondData = inputStream2.read();
				out.println(String.valueOf(i) + ": null" + " - " + "data1");
				out.println(String.valueOf(i) + ": " + toDisplayString(inputStream2, i) + " - " + "data2");
				out.println();
			}
		}
    }