public static void main(String[] strings) throws IOException
	{
		File firstFile = new File(strings[0]);
		File secondFile = new File(strings[1]);
		
		System.out.println("Comparing " + firstFile + " and " + secondFile);
		System.out.println();
		
		RandomAccessFile firstRandomAccessFile = null;
		try
		{
			firstRandomAccessFile = new RandomAccessFile(firstFile, "r");
		}
		catch (FileNotFoundException e)
		{
			e.printStackTrace();
			System.err.println("File Not Found: " + firstFile.getName());
		}
        
		RandomAccessFile secondRandomAccessFile = null;
		try
		{
			secondRandomAccessFile = new RandomAccessFile(secondFile, "r");
		}
		catch (FileNotFoundException e)
		{
			e.printStackTrace();
			System.err.println("File Not Found: " + secondFile.getName());
		}
        
		long firstRandomAccessFileLength = firstRandomAccessFile.length();
		long secondRandomAccessFileLength = secondRandomAccessFile.length();
		long minSize = (firstRandomAccessFileLength > secondRandomAccessFileLength) ? secondRandomAccessFileLength : firstRandomAccessFileLength;
		
		for (long i = 0; i < minSize; ++i)
		{
			int firstData = firstRandomAccessFile.read();
			int secondData = secondRandomAccessFile.read();
			if (firstData != secondData)
			{
				System.err.println(String.valueOf(i) + ": " + toDisplayString(firstRandomAccessFile, i) + " - " + firstFile.getName());
				System.err.println(String.valueOf(i) + ": " + toDisplayString(secondRandomAccessFile, i) + " - " + secondFile.getName());
				System.err.println();
			}
		}

		if (firstRandomAccessFileLength >= minSize)
		{
			for (long i = minSize; i < firstRandomAccessFileLength; ++i)
			{
				int firstData = firstRandomAccessFile.read();
				System.err.println(String.valueOf(i) + ": " + toDisplayString(firstRandomAccessFile, i) + " - " + firstFile.getName());
				System.err.println(String.valueOf(i) + ": null" + " - " + secondFile.getName());
				System.err.println();
			}
		}

		if (secondRandomAccessFileLength >= minSize)
		{
			for (long i = minSize; i < secondRandomAccessFileLength; ++i)
			{
				int secondData = secondRandomAccessFile.read();
				System.err.println(String.valueOf(i) + ": null" + " - " + firstFile.getName());
				System.err.println(String.valueOf(i) + ": " + toDisplayString(secondRandomAccessFile, i) + " - " + secondFile.getName());
				System.err.println();
			}
		}
    }